2008-08-06 14:32:29 +00:00
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
2013-10-29 12:48:46 -05:00
m4_define([lxc_version_major], 1)
2014-07-07 12:49:12 -04:00
m4_define([lxc_version_minor], 1)
2013-10-29 12:48:46 -05:00
m4_define([lxc_version_micro], 0)
2014-07-07 12:49:12 -04:00
m4_define([lxc_version_beta], [alpha1])
2013-10-29 12:48:46 -05:00
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])])
AC_INIT([lxc], [lxc_version])
2014-01-07 11:24:36 -05:00
# We need pkg-config
PKG_PROG_PKG_CONFIG
2013-10-29 12:48:46 -05:00
AC_SUBST(LXC_VERSION_BASE, lxc_version_base)
AC_SUBST(LXC_VERSION_BETA, lxc_version_beta)
2008-08-06 14:32:29 +00:00
2013-12-01 23:14:17 -05:00
AC_SUBST([LXC_VERSION_MAJOR], [lxc_version_major])
AC_SUBST([LXC_VERSION_MINOR], [lxc_version_minor])
AC_SUBST([LXC_VERSION_MICRO], [lxc_version_micro])
AC_SUBST([LXC_VERSION], [lxc_version])
2009-04-26 11:43:41 +02:00
AC_CONFIG_SRCDIR([configure.ac])
2008-08-06 14:32:29 +00:00
AC_CONFIG_AUX_DIR([config])
2013-02-19 10:17:41 +01:00
AC_CONFIG_HEADERS([src/config.h])
2013-08-15 14:27:05 +08:00
AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability subdir-objects])
2008-08-06 14:32:29 +00:00
AC_CANONICAL_HOST
AM_PROG_CC_C_O
AC_GNU_SOURCE
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
2013-01-08 12:02:52 -05:00
# Detect the distribution. This is used for the default configuration and
# for some distro-specific build options.
2012-10-17 13:28:27 -04:00
AC_MSG_CHECKING([host distribution])
2013-11-25 14:34:40 -05:00
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, paldo, openmandriva or pardus.]))
2014-02-12 17:46:06 -05:00
if type lsb_release >/dev/null 2>&1 && test "z$with_distro" = "z"; then
2012-10-17 13:28:27 -04:00
with_distro=`lsb_release -is`
2012-08-27 19:04:43 -04:00
fi
2012-10-17 13:28:27 -04:00
if test "z$with_distro" = "z"; then
AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat")
AC_CHECK_FILE(/etc/oracle-release,with_distro="oracle")
2013-11-25 14:34:40 -05:00
AC_CHECK_FILE(/etc/centos-release,with_distro="centos")
2012-10-17 13:28:27 -04:00
AC_CHECK_FILE(/etc/fedora-release,with_distro="fedora")
AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo")
AC_CHECK_FILE(/etc/debian_version,with_distro="debian")
AC_CHECK_FILE(/etc/arch-release,with_distro="arch")
AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware")
AC_CHECK_FILE(/etc/frugalware-release,with_distro="frugalware")
2013-10-18 16:41:02 +04:00
AC_CHECK_FILE(/etc/mandrakelinux-release, with_distro="openmandriva")
AC_CHECK_FILE(/etc/mandriva-release,with_distro="openmandriva")
2012-10-17 13:28:27 -04:00
AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus")
fi
with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]'`
if test "z$with_distro" = "z"; then
with_distro="unknown"
fi
case $with_distro in
ubuntu)
2013-05-31 16:02:33 +02:00
distroconf=default.conf.ubuntu
2012-10-17 13:28:27 -04:00
;;
2013-11-25 14:34:40 -05:00
redhat|centos|fedora|oracle|oracleserver)
2013-05-31 16:02:33 +02:00
distroconf=default.conf.libvirt
2012-10-17 13:28:27 -04:00
;;
*)
2013-05-31 16:02:33 +02:00
distroconf=default.conf.unknown
2012-10-17 13:28:27 -04:00
;;
esac
AC_MSG_RESULT([$with_distro])
AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu"])
2013-10-02 22:30:31 -05:00
AM_CONDITIONAL([DISTRO_UBUNTU], [test "x$with_distro" = "xubuntu"])
2012-08-27 19:04:43 -04:00
2013-12-31 14:21:55 -05:00
# Check for init system type
AC_MSG_CHECKING([for init system type])
AC_ARG_WITH([init-script],
2014-01-06 14:05:12 -05:00
[AC_HELP_STRING([--with-init-script@<:@=TYPE@<:@,TYPE,...@:>@@:>@],
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
[Type(s) of init script to install: sysvinit, systemd, upstart,
2014-01-06 14:05:12 -05:00
distro @<:@default=distro@:>@])],[],[with_init_script=distro])
2013-12-31 14:21:55 -05:00
case "$with_init_script" in
distro)
case $with_distro in
fedora)
init_script=systemd
;;
redhat|centos|oracle|oracleserver)
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
init_script=sysvinit
2013-12-31 14:21:55 -05:00
;;
2014-01-06 14:05:12 -05:00
debian)
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
init_script=upstart,systemd
2014-01-06 14:05:12 -05:00
;;
2013-12-31 14:21:55 -05:00
ubuntu)
init_script=upstart
;;
*)
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
echo -n "Linux distribution init system unknown."
init_script=
2013-12-31 14:21:55 -05:00
;;
esac
;;
*)
2014-01-06 14:05:12 -05:00
init_script=$with_init_script
2013-12-31 14:21:55 -05:00
;;
esac
2014-01-06 14:05:12 -05:00
# Check valid init systems were given, run in subshell so we don't mess up IFS
(IFS="," ; for init_sys in $init_script;
do
case "$init_sys" in
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
none|sysvinit|systemd|upstart)
2014-01-06 14:05:12 -05:00
;;
*)
exit 1
;;
esac
done) || AC_MSG_ERROR([Unknown init system type in $init_script])
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
AM_CONDITIONAL([INIT_SCRIPT_SYSV], [echo "$init_script" |grep -q "sysvinit"])
2014-01-06 14:05:12 -05:00
AM_CONDITIONAL([INIT_SCRIPT_SYSTEMD], [echo "$init_script" |grep -q "systemd"])
AM_CONDITIONAL([INIT_SCRIPT_UPSTART], [echo "$init_script" |grep -q "upstart"])
2013-12-31 14:21:55 -05:00
AC_MSG_RESULT($init_script)
2014-07-31 08:53:52 +02:00
# systemd unit dir
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[],
[with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
if test -z "$with_systemdsystemunitdir"; then
with_systemdsystemunitdir=/lib/systemd/system
fi
if test "x$with_systemdsystemunitdir" != "xno"; then
AC_SUBST([SYSTEMD_UNIT_DIR], [$with_systemdsystemunitdir])
fi
2013-01-08 12:02:52 -05:00
# Allow disabling rpath
2011-09-13 15:08:04 +02:00
AC_ARG_ENABLE([rpath],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-rpath], [set rpath in executables [default=no]])],
[], [enable_rpath=no])
2011-09-13 15:08:04 +02:00
AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
2013-01-08 12:02:52 -05:00
# Documentation (manpages)
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
AC_ARG_ENABLE([doc],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-doc], [make man pages [default=auto]])],
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
[], [enable_doc=auto])
if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
2012-11-12 15:38:50 -05:00
db2xman=""
2014-01-06 10:53:15 +08:00
dbparsers="docbook2x-man db2x_docbook2man docbook2man docbook-to-man"
2013-04-25 12:20:30 +02:00
2012-11-12 15:38:50 -05:00
AC_MSG_CHECKING(for docbook2x-man)
2013-04-25 12:20:30 +02:00
for name in ${dbparsers}; do
2012-11-12 15:38:50 -05:00
if "$name" --help >/dev/null 2>&1; then
db2xman="$name"
break;
fi
done
if test -n "${db2xman}"; then
2013-01-08 12:02:52 -05:00
AC_MSG_RESULT([${db2xman}])
2013-12-15 18:48:38 -05:00
enable_doc="yes"
2012-11-12 15:38:50 -05:00
else
2013-01-08 12:02:52 -05:00
AC_MSG_RESULT([no])
2012-11-12 15:38:50 -05:00
if test "x$enable_doc" = "xyes"; then
2013-12-15 18:48:38 -05:00
AC_MSG_ERROR([docbook2x-man is required, but could not be found])
2012-11-12 15:38:50 -05:00
fi
2013-12-15 18:48:38 -05:00
enable_doc="no"
2012-11-12 15:38:50 -05:00
fi
AC_SUBST(db2xman)
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
fi
2013-01-08 12:02:52 -05:00
AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$db2xman" != "x"])
2013-09-25 19:36:30 +09:00
AM_CONDITIONAL([USE_DOCBOOK2X], [test "x$db2xman" != "xdocbook2man"])
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
2013-04-29 16:47:35 -04:00
if test "x$db2xman" = "xdocbook2man"; then
docdtd="\"-//Davenport//DTD DocBook V3.0//EN\""
else
docdtd="\"-//OASIS//DTD DocBook XML\" \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""
fi
AC_SUBST(docdtd)
2013-11-25 13:42:09 +00:00
# Documentation (API)
AC_ARG_ENABLE([api-docs],
[AC_HELP_STRING([--enable-api-docs],
2013-12-15 18:48:38 -05:00
[make API documentation [default=auto]])],
2013-11-25 13:42:09 +00:00
[], [enable_api_docs=auto])
if test "x$enable_api_docs" = "xyes" -o "x$enable_api_docs" = "xauto"; then
2013-12-15 18:48:38 -05:00
AC_CHECK_PROGS([HAVE_DOXYGEN],[doxygen])
AC_SUBST([HAVE_DOXYGEN])
if test "x$HAVE_DOXYGEN" != "x"; then
enable_api_docs="yes"
else
if test "x$enable_api_docs" = "xyes"; then
AC_MSG_ERROR([doxygen is required, but could not be found])
fi
enable_api_docs="no"
fi
2013-11-25 13:42:09 +00:00
fi
2013-12-15 18:48:38 -05:00
AM_CONDITIONAL([ENABLE_API_DOCS], [test "x$HAVE_DOXYGEN" != "x"])
2013-11-25 13:42:09 +00:00
2014-07-21 17:48:55 -05:00
# Openvswitch
AC_PATH_PROG([OVS_CTL_PATH],[ovs-vsctl])
if test "x$OVS_CTL_PATH" != "x"; then
enable_ovs="yes"
AS_AC_EXPAND(OVS_CTL_PATH, "$OVS_CTL_PATH")
else
enable_ovs="no"
fi
AM_CONDITIONAL([HAVE_OVS], [test "x$enable_ovs" = "xyes"])
2013-01-08 12:02:52 -05:00
# Apparmor
2012-08-17 13:04:34 -05:00
AC_ARG_ENABLE([apparmor],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-apparmor], [enable apparmor support [default=auto]])],
[], [enable_apparmor=auto])
2012-08-17 13:04:34 -05:00
2013-12-15 18:48:38 -05:00
if test "$enable_apparmor" = "auto" ; then
2012-08-17 13:04:34 -05:00
AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
fi
AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
2013-12-23 22:12:17 +01:00
AC_CHECK_LIB([gnutls], [gnutls_hash_fast], [enable_gnutls=yes], [enable_gnutls=no])
2013-07-12 14:07:23 -05:00
2012-07-31 16:04:33 +02:00
AM_COND_IF([ENABLE_APPARMOR],
2013-01-08 12:02:52 -05:00
[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])])
2012-07-31 16:04:33 +02:00
2013-09-24 11:13:02 -04:00
# SELinux
AC_ARG_ENABLE([selinux],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-selinux], [enable SELinux support [default=auto]])],
[], [enable_selinux=auto])
2013-09-24 11:13:02 -04:00
2013-12-15 18:48:38 -05:00
if test "x$enable_selinux" = xauto; then
2013-09-24 11:13:02 -04:00
AC_CHECK_LIB([selinux],[setexeccon_raw],[enable_selinux=yes],[enable_selinux=no])
fi
AM_CONDITIONAL([ENABLE_SELINUX], [test "x$enable_selinux" = "xyes"])
AM_COND_IF([ENABLE_SELINUX],
[AC_CHECK_HEADER([selinux/selinux.h],[],[AC_MSG_ERROR([You must install the SELinux development package in order to compile lxc])])
2014-06-19 14:53:01 -04:00
AC_CHECK_LIB([selinux], [setexeccon_raw],[true],[AC_MSG_ERROR([You must install the SELinux development package in order to compile lxc])])
AC_SUBST([SELINUX_LIBS], [-lselinux])])
2013-09-24 11:13:02 -04:00
2013-01-08 12:02:52 -05:00
# Seccomp syscall filter
2012-08-17 13:04:34 -05:00
AC_ARG_ENABLE([seccomp],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-seccomp], [enable seccomp support [default=auto]])],
[], [enable_seccomp=auto])
2012-08-17 13:04:34 -05:00
2013-12-15 18:48:38 -05:00
if test "x$enable_seccomp" = "xauto" ; then
2012-08-17 13:04:34 -05:00
AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
fi
AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
2012-07-27 21:13:53 -05:00
AM_COND_IF([ENABLE_SECCOMP],
2013-04-24 10:46:21 +02:00
[PKG_CHECK_MODULES([SECCOMP],[libseccomp],[],[
AC_CHECK_HEADER([seccomp.h],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
AC_CHECK_LIB([seccomp], [seccomp_init],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
AC_SUBST([SECCOMP_LIBS], [-lseccomp])
])
])
2012-07-27 21:13:53 -05:00
2014-01-14 16:41:36 -06:00
# 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
2014-02-17 15:36:51 -05:00
AC_CHECK_LIB([cgmanager],[cgmanager_create],[enable_cgmanager=yes],[enable_cgmanager=no],[-lnih -lnih-dbus -ldbus-1])
2014-01-14 16:41:36 -06:00
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])
])
2014-05-01 15:27:55 -05:00
AC_MSG_CHECKING(for get_pid_cgroup_abs_sync)
2014-06-02 22:04:12 -05:00
save_LIBS=$LIBS
2014-05-01 15:27:55 -05:00
AC_SEARCH_LIBS([cgmanager_get_pid_cgroup_abs_sync], [cgmanager], [have_abs_cgroups=yes], [have_abs_cgroups=no], [-lnih -lnih-dbus -ldbus-1])
2014-06-02 22:04:12 -05:00
LIBS=$save_LIBS
2014-05-01 15:27:55 -05:00
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
2014-06-20 16:45:09 -04:00
# 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
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -static"
AC_CHECK_LIB([cap],[cap_init],[have_static_libcap=yes],[have_static_libcap=no])
AM_CONDITIONAL([HAVE_STATIC_LIBCAP], [test "x$have_static_libcap" = "xyes"])
if test "x$have_static_libcap" = "xyes"; then
AC_DEFINE([HAVE_STATIC_LIBCAP], 1, [Have static libcap])
fi
CFLAGS="$OLD_CFLAGS"
2013-12-15 18:48:38 -05:00
# Linux capabilities
AC_ARG_ENABLE([capabilities],
[AC_HELP_STRING([--enable-capabilities], [enable kernel capabilities support [default=auto]])],
[], [enable_capabilities=auto])
if test "x$enable_capabilities" = "xauto"; then
AC_CHECK_LIB([cap],[cap_set_proc],[enable_capabilities=yes],[enable_capabilities=no])
fi
AM_CONDITIONAL([ENABLE_CAP], [test "x$enable_capabilities" = "xyes"])
AM_COND_IF([ENABLE_CAP],
2014-06-19 14:53:01 -04:00
[AC_CHECK_LIB(cap,cap_set_proc,[true],[AC_MSG_ERROR([You are missing libcap support.])])
2013-12-15 18:48:38 -05:00
AC_SUBST([CAP_LIBS], [-lcap])])
2012-12-11 11:40:02 -06:00
# HAVE_SCMP_FILTER_CTX=1 will tell us we have libseccomp api >= 1.0.0
2013-04-24 10:46:21 +02:00
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $SECCOMP_CFLAGS"
2013-12-15 18:48:38 -05:00
AC_CHECK_TYPES([scmp_filter_ctx], [], [], [[#include <seccomp.h>]])
2014-02-12 17:20:22 -06:00
AC_CHECK_DECLS([seccomp_syscall_resolve_name_arch], [], [], [[#include <seccomp.h>]])
2013-04-24 10:46:21 +02:00
CFLAGS="$OLD_CFLAGS"
2012-12-11 11:40:02 -06:00
2013-01-08 12:02:52 -05:00
# Configuration examples
2009-11-13 11:48:29 +01:00
AC_ARG_ENABLE([examples],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-examples], [install examples [default=yes]])],
2009-11-13 11:48:29 +01:00
[], [enable_examples=yes])
AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
2013-01-08 12:02:52 -05:00
# Python3 module and scripts
2012-08-27 19:04:43 -04:00
AC_ARG_ENABLE([python],
2013-12-15 18:48:38 -05:00
[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])
2013-12-23 22:11:58 +01:00
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])
2013-12-15 18:48:38 -05:00
fi
2012-08-27 19:04:43 -04:00
AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
AM_COND_IF([ENABLE_PYTHON],
2013-01-08 12:02:52 -05:00
[AM_PATH_PYTHON([3.2], [], [AC_MSG_ERROR([You must install python3])])
2013-01-10 15:45:22 -05:00
PKG_CHECK_MODULES([PYTHONDEV], [python3 >= 3.2],[],[AC_MSG_ERROR([You must install python3-dev])])
2013-01-08 12:02:52 -05:00
AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
2012-08-27 19:04:43 -04:00
2013-11-01 16:16:10 -04:00
# Enable dumping stack traces
AC_ARG_ENABLE([mutex-debugging],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-mutex-debugging], [Makes mutexes to report error and provide stack trace [default=no]])],
[], [enable_mutex_debugging=no])
2013-11-01 16:16:10 -04:00
AM_CONDITIONAL([MUTEX_DEBUGGING], [test "x$enable_mutex_debugging" = "xyes"])
AM_COND_IF([MUTEX_DEBUGGING],
AC_DEFINE_UNQUOTED([MUTEX_DEBUGGING], 1, [Enabling mutex debugging]))
2013-09-05 16:40:49 -04:00
# Not in older autoconf versions
# AS_VAR_COPY(DEST, SOURCE)
# -------------------------
# Set the polymorphic shell variable DEST to the contents of the polymorphic
# shell variable SOURCE.
m4_ifdef([AS_VAR_COPY], [],
[AC_DEFUN([AS_VAR_COPY],
[AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])
])
2013-09-05 17:13:07 +02:00
dnl PKG_CHECK_VAR was introduced with pkg-config 0.28
m4_ifdef([PKG_CHECK_VAR], [],
[AC_DEFUN([PKG_CHECK_VAR],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])# PKG_CHECK_VAR
])
2013-01-24 11:42:22 -05:00
2013-09-05 17:13:07 +02:00
# Lua module and scripts
2013-01-24 11:42:22 -05:00
AC_ARG_ENABLE([lua],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-lua], [enable lua binding [default=auto]])],
[], [enable_lua=auto])
2013-01-24 11:42:22 -05:00
2013-09-05 17:13:07 +02:00
AC_ARG_WITH([lua-pc],
[AS_HELP_STRING(
[--with-lua-pc=PKG],
[Specify pkg-config package name for lua]
2013-09-06 21:09:57 +02:00
)], [], [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
2013-12-15 18:48:38 -05:00
if test "x$enable_lua" = "xauto" -a "x$with_lua_pc" != "xno"; then
2013-09-06 21:09:57 +02:00
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
2013-09-05 17:13:07 +02:00
AM_CONDITIONAL([ENABLE_LUA],
2013-09-06 09:08:45 +02:00
[test "x$enable_lua" = "xyes"])
2013-01-24 11:42:22 -05:00
AM_COND_IF([ENABLE_LUA],
2013-09-06 21:09:57 +02:00
[AC_MSG_CHECKING([Lua version])
2013-09-05 17:13:07 +02:00
PKG_CHECK_VAR([LUA_VERSION], [$LUAPKGCONFIG], [V],,
[PKG_CHECK_VAR([LUA_VERSION], [$LUAPKGCONFIG], [major_version])])
AC_MSG_RESULT([$LUA_VERSION])
2014-03-04 09:50:27 +00:00
AC_SUBST([LUA_LIBDIR], [$libdir/lua/$LUA_VERSION])
AC_SUBST([LUA_SHAREDIR], [$datadir/lua/$LUA_VERSION])
2013-09-05 17:13:07 +02:00
])
2013-01-24 11:42:22 -05:00
2014-01-20 23:49:19 -05:00
# Optional bash integration
AC_ARG_ENABLE([bash],
[AC_HELP_STRING([--enable-bash], [build bash integration [default=yes]])],
[], [enable_bash=yes])
AM_CONDITIONAL([ENABLE_BASH], [test "x$enable_bash" = "xyes"])
2013-01-08 12:02:52 -05:00
# Optional test binaries
2012-09-01 19:57:11 -04:00
AC_ARG_ENABLE([tests],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-tests], [build test/example binaries [default=no]])],
[], [enable_tests=no])
2012-09-01 19:57:11 -04:00
AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
2014-02-11 17:40:20 -05:00
# Allow overriding the default runtime dir (/run)
AC_ARG_WITH([runtime-path],
[AC_HELP_STRING(
[--with-runtime-path=dir],
[runtime directory (default: /run)]
)], [], [with_runtime_path=['/run']])
2013-01-08 12:02:52 -05:00
# LXC container path, where the containers are actually stored
2013-02-18 11:52:53 -05:00
# This is overridden by an entry in the file called LXCCONF
2013-02-06 15:11:19 -06:00
# (i.e. /etc/lxc/lxc.conf)
2009-11-17 10:56:23 +01:00
AC_ARG_WITH([config-path],
[AC_HELP_STRING(
[--with-config-path=dir],
2009-12-28 22:10:11 +01:00
[lxc configuration repository path]
2011-09-13 15:08:04 +02:00
)], [], [with_config_path=['${localstatedir}/lib/lxc']])
2009-11-17 10:56:23 +01:00
2013-02-06 15:11:19 -06:00
# The path of the global lxc configuration file.
AC_ARG_WITH([global-conf],
[AC_HELP_STRING(
[--with-global-conf=dir],
[global lxc configuration file]
)], [], [with_global_conf=['${sysconfdir}/lxc/lxc.conf']])
2013-09-21 17:43:46 -05:00
# The path of the userns network configuration file
2013-08-09 21:08:28 -05:00
AC_ARG_WITH([usernic-conf],
[AC_HELP_STRING(
[--with-usernic-conf],
[user network interface configuration file]
)], [], [with_usernic_conf=['${sysconfdir}/lxc/lxc-usernet']])
2013-09-21 17:43:46 -05:00
# The path of the runtime usernic database
2013-08-09 21:08:28 -05:00
AC_ARG_WITH([usernic-db],
[AC_HELP_STRING(
[--with-usernic-db],
[lxc user nic database]
2014-02-12 17:46:06 -05:00
)], [], [with_usernic_db=['${with_runtime_path}/lxc/nics']])
2013-08-09 21:08:28 -05:00
2013-01-08 12:02:52 -05:00
# Rootfs path, where the container mount structure is assembled
2010-05-12 23:44:28 +02:00
AC_ARG_WITH([rootfs-path],
[AC_HELP_STRING(
[--with-rootfs-path=dir],
[lxc rootfs mount point]
2011-09-13 15:08:04 +02:00
)], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
2013-09-21 17:43:46 -05:00
2013-09-08 13:43:13 +02:00
# cgroup pattern specification
AC_ARG_WITH([cgroup-pattern],
[AC_HELP_STRING(
[--with-cgroup-pattern=pattern],
[pattern for container cgroups]
)], [], [with_cgroup_pattern=['/lxc/%n']])
2010-05-12 23:44:28 +02:00
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
# Container log path. By default, use $lxcpath.
AC_MSG_CHECKING([Whether to place logfiles in container config path])
AC_ARG_ENABLE([configpath-log],
2013-12-15 18:48:38 -05:00
[AC_HELP_STRING([--enable-configpath-log], [use logfiles in config path [default=no]])],
[], [enable_configpath_log=no])
AC_MSG_RESULT([$enable_configpath_log])
AM_CONDITIONAL([USE_CONFIGPATH_LOGS], [test "$enable_configpath_log" = "yes"])
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
2013-12-15 18:48:38 -05:00
if test "$enable_configpath_log" = "yes"; then
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
default_log_path="${with_config_path}"
else
2013-03-17 23:21:31 +09:00
default_log_path="${localstatedir}/log/lxc"
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
fi
AC_ARG_WITH([log-path],
[AC_HELP_STRING(
[--with-log-path=dir],
[per container log path]
)], [], [with_log_path=['${default_log_path}']])
2013-01-08 12:02:52 -05:00
# Expand some useful variables
AS_AC_EXPAND(PREFIX, "$prefix")
AS_AC_EXPAND(LIBDIR, "$libdir")
AS_AC_EXPAND(BINDIR, "$bindir")
2014-03-27 10:36:06 -05:00
AS_AC_EXPAND(SBINDIR, "$sbindir")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LIBEXECDIR, "$libexecdir")
AS_AC_EXPAND(INCLUDEDIR, "$includedir")
AS_AC_EXPAND(SYSCONFDIR, "$sysconfdir")
2013-05-31 16:09:14 +02:00
AS_AC_EXPAND(LXC_DEFAULT_CONFIG, "$sysconfdir/lxc/default.conf")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(DATADIR, "$datadir")
AS_AC_EXPAND(LOCALSTATEDIR, "$localstatedir")
AS_AC_EXPAND(DOCDIR, "$docdir")
2013-05-31 16:02:33 +02:00
AS_AC_EXPAND(LXC_DISTRO_CONF, "$distroconf")
2009-11-17 10:56:23 +01:00
AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LXCPATH, "$with_config_path")
2013-02-06 15:11:19 -06:00
AS_AC_EXPAND(LXC_GLOBAL_CONF, "$with_global_conf")
2013-08-09 21:08:28 -05:00
AS_AC_EXPAND(LXC_USERNIC_CONF, "$with_usernic_conf")
AS_AC_EXPAND(LXC_USERNIC_DB, "$with_usernic_db")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LXCROOTFSMOUNT, "$with_rootfs_path")
AS_AC_EXPAND(LXCTEMPLATEDIR, "$datadir/lxc/templates")
2013-11-29 19:19:09 -05:00
AS_AC_EXPAND(LXCTEMPLATECONFIG, "$datadir/lxc/config")
2013-02-19 15:44:19 -05:00
AS_AC_EXPAND(LXCHOOKDIR, "$datadir/lxc/hooks")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LXCINITDIR, "$libexecdir")
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
AS_AC_EXPAND(LOGPATH, "$with_log_path")
2014-02-11 17:40:20 -05:00
AS_AC_EXPAND(RUNTIME_PATH, "$with_runtime_path")
2013-09-08 13:43:13 +02:00
AC_SUBST(DEFAULT_CGROUP_PATTERN, ["$with_cgroup_pattern"])
2009-10-22 15:33:40 +02:00
2013-01-08 12:02:52 -05:00
# Check for some standard kernel headers
2012-05-04 00:50:15 +02:00
AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
2013-01-08 12:02:52 -05:00
[],
AC_MSG_ERROR([Please install the Linux kernel headers.]),
[#include <sys/socket.h>])
2008-12-09 17:49:21 +00:00
2013-01-08 12:02:51 -05:00
# Check for alternate C libraries
AC_MSG_CHECKING(for bionic libc)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
2013-01-08 12:02:52 -05:00
[[#ifndef __ANDROID__
2013-01-08 12:02:51 -05:00
error: Not bionic!
#endif]])],
2013-01-08 12:02:52 -05:00
[is_bionic=yes],
[is_bionic=no])
2013-01-08 12:02:51 -05:00
if test "x$is_bionic" = "xyes"; then
2013-01-08 12:02:52 -05:00
AC_DEFINE([IS_BIONIC], 1, [bionic libc])
AC_MSG_RESULT([yes])
2013-01-08 12:02:51 -05:00
else
2013-01-08 12:02:52 -05:00
AC_MSG_RESULT([no])
2013-01-08 12:02:51 -05:00
fi
AM_CONDITIONAL([IS_BIONIC], [test "x$is_bionic" = "xyes"])
2009-03-08 17:09:27 +01:00
# Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
2013-01-03 12:24:11 -05:00
# Check for some headers
2013-08-16 11:47:10 +02:00
AC_CHECK_HEADERS([sys/signalfd.h pty.h ifaddrs.h sys/capability.h sys/personality.h utmpx.h sys/timerfd.h])
2009-02-02 14:50:00 +00:00
2013-01-03 12:24:14 -05:00
# Check for some syscalls functions
2014-02-07 15:21:24 -05:00
AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat])
2013-01-03 12:24:14 -05:00
2013-01-03 12:24:11 -05:00
# Check for some functions
2014-01-04 00:00:04 -05:00
AC_CHECK_LIB(pthread, main)
AC_CHECK_FUNCS(pthread_atfork)
2013-01-11 15:53:14 -05:00
AC_CHECK_LIB(util, openpty)
2014-01-29 14:23:48 +00:00
AC_CHECK_FUNCS([openpty hasmntopt setmntent endmntent utmpxname])
2012-12-20 13:46:57 +01:00
AC_CHECK_FUNCS([getline],
AM_CONDITIONAL(HAVE_GETLINE, true)
AC_DEFINE(HAVE_GETLINE,1,[Have getline]),
AM_CONDITIONAL(HAVE_GETLINE, false))
AC_CHECK_FUNCS([fgetln],
AM_CONDITIONAL(HAVE_FGETLN, true)
AC_DEFINE(HAVE_FGETLN,1,[Have fgetln]),
AM_CONDITIONAL(HAVE_FGETLN, false))
2013-02-19 11:36:07 -05:00
# Check for some libraries
AC_SEARCH_LIBS(sem_open, [rt pthread])
2013-02-22 10:55:54 -05:00
AC_SEARCH_LIBS(clock_gettime, [rt])
2013-02-19 11:36:07 -05:00
2013-01-08 12:02:52 -05:00
# Check for some standard binaries
2008-08-06 14:32:29 +00:00
AC_PROG_GCC_TRADITIONAL
2012-09-07 14:53:19 -04:00
AC_PROG_SED
2008-08-06 14:32:29 +00:00
2014-01-04 00:00:04 -05:00
# See if we support thread-local storage.
LXC_CHECK_TLS
2008-08-06 14:32:29 +00:00
if test "x$GCC" = "xyes"; then
2013-01-08 12:02:52 -05:00
CFLAGS="$CFLAGS -Wall -Werror"
2008-08-06 14:32:29 +00:00
fi
2013-01-08 12:02:52 -05:00
# Files requiring some variable expansion
2008-08-06 14:32:29 +00:00
AC_CONFIG_FILES([
2010-05-12 23:44:28 +02:00
Makefile
2009-06-10 18:21:48 +02:00
lxc.pc
2008-08-06 14:32:29 +00:00
lxc.spec
2013-11-29 19:19:09 -05:00
2010-05-12 23:44:28 +02:00
config/Makefile
2014-01-16 16:27:51 -05:00
config/apparmor/Makefile
2014-07-24 17:25:46 -04:00
config/selinux/Makefile
2014-01-20 23:49:19 -05:00
config/bash/Makefile
config/bash/lxc
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
config/init/Makefile
config/init/sysvinit/Makefile
2014-05-19 15:57:26 -04:00
config/init/sysvinit/lxc
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
config/init/systemd/Makefile
2014-05-19 15:57:26 -04:00
config/init/systemd/lxc.service
2014-07-31 08:53:53 +02:00
config/init/systemd/lxc-net.service
init: Add upstart jobs and some more changes (v3)
This adds the 3 upstart jobs that we've had in Ubuntu for a while:
- lxc.conf: Main upstart job, triggers lxc-net.conf based on config
- lxc-instance.conf: Triggered by lxc.conf for each auto-started container
- lxc-net.conf: Triggered by lxc.conf, sets up lxcbr0, NAT, mangling, ...
In addition, there are two extra config files in /etc/default:
- lxc: Allows setting some values like http proxying, disabling autostart, ...
- lxc-net: Network configuration for the lxcbr0 bridge
This change also disables the sysv script for all distros but Oracle as
the current script won't work on either Ubuntu nor Debian and I suspect
quite a few more distros, so it's not nearly as distro-agnostic as we
thought.
For Debian, only install the upstart jobs and systemd unit.
For Ubuntu, only install the upstart jobs.
This change also moves all the init related stuff to config/init/
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-01-16 14:13:14 -05:00
config/init/upstart/Makefile
2013-11-29 19:19:09 -05:00
config/etc/Makefile
config/templates/Makefile
2014-06-25 01:27:54 +08:00
config/templates/archlinux.common.conf
config/templates/archlinux.userns.conf
2014-01-21 11:56:56 -05:00
config/templates/centos.common.conf
config/templates/centos.userns.conf
Reduce duplication in new style configs
This is a rather massive cleanup of config/templates/*
As new templates were added, I've noticed that we pretty much all share
the tty/pts configs, some capabilities being dropped and most of the
cgroup configuration. All the userns configs were also almost identical.
As a result, this change introduces two new files:
- common.conf.in
- userns.conf.in
Each is included by the relevant <template>.<type>.conf.in templates,
this means that the individual per-template configs are now overlays on
top of the default config.
Once we see a specific key becoming popular, we ought to check whether
it should also be applied to the other templates and if more than 50% of
the templates have it set to the same value, that value ought to be
moved to the master config file and then overriden for the templates
that do not use it.
This change while pretty big and scary, shouldn't be very visible from a
user point of view, the actual changes can be summarized as:
- Extend clonehostname to work with Debian based distros and use it for
all containers.
- lxc.pivotdir is now set to lxc_putold for all templates, this means
that instead of using /mnt in the container, lxc will create and use
/lxc_putold instead. The reason for this is to avoid failures when the
user bind-mounts something else on top of /mnt.
- Some minor cgroup limit changes, the main one I remember is
/dev/console now being writable by all of the redhat based containers.
The rest of the set should be identical with additions in the per-distro
ones.
- Drop binfmtmisc and efivars bind-mounts for non-mountall based
unpriivileged containers as I assumed they got those from copy/paste
from Ubuntu and not because they actually need those entries. (If I'm
wrong, we probably should move those to userns.conf then).
Additional investigation and changes to reduce the config delta between
distros would be appreciated. In practice, I only expect lxc.cap.drop
and lxc.mount.entry to really vary between distros (depending on the
init system, the rest should be mostly common.
Diff from the RFC:
- Add archlinux to the mix
- Drop /etc/hostname from the clone hook
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-20 17:20:06 -04:00
config/templates/common.conf
2014-01-15 14:57:28 -05:00
config/templates/debian.common.conf
config/templates/debian.userns.conf
2014-01-21 11:56:56 -05:00
config/templates/fedora.common.conf
config/templates/fedora.userns.conf
2014-01-26 20:55:23 +01:00
config/templates/gentoo.common.conf
config/templates/gentoo.moresecure.conf
2014-01-28 09:56:37 +00:00
config/templates/gentoo.userns.conf
2014-06-18 15:31:44 -04:00
config/templates/opensuse.common.conf
config/templates/opensuse.userns.conf
2014-01-15 12:21:44 -05:00
config/templates/oracle.common.conf
config/templates/oracle.userns.conf
2014-01-13 20:57:53 +09:00
config/templates/plamo.common.conf
2014-01-13 17:06:01 -05:00
config/templates/plamo.userns.conf
2013-11-29 19:19:09 -05:00
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
2014-01-10 17:28:07 -05:00
config/templates/ubuntu.userns.conf
Reduce duplication in new style configs
This is a rather massive cleanup of config/templates/*
As new templates were added, I've noticed that we pretty much all share
the tty/pts configs, some capabilities being dropped and most of the
cgroup configuration. All the userns configs were also almost identical.
As a result, this change introduces two new files:
- common.conf.in
- userns.conf.in
Each is included by the relevant <template>.<type>.conf.in templates,
this means that the individual per-template configs are now overlays on
top of the default config.
Once we see a specific key becoming popular, we ought to check whether
it should also be applied to the other templates and if more than 50% of
the templates have it set to the same value, that value ought to be
moved to the master config file and then overriden for the templates
that do not use it.
This change while pretty big and scary, shouldn't be very visible from a
user point of view, the actual changes can be summarized as:
- Extend clonehostname to work with Debian based distros and use it for
all containers.
- lxc.pivotdir is now set to lxc_putold for all templates, this means
that instead of using /mnt in the container, lxc will create and use
/lxc_putold instead. The reason for this is to avoid failures when the
user bind-mounts something else on top of /mnt.
- Some minor cgroup limit changes, the main one I remember is
/dev/console now being writable by all of the redhat based containers.
The rest of the set should be identical with additions in the per-distro
ones.
- Drop binfmtmisc and efivars bind-mounts for non-mountall based
unpriivileged containers as I assumed they got those from copy/paste
from Ubuntu and not because they actually need those entries. (If I'm
wrong, we probably should move those to userns.conf then).
Additional investigation and changes to reduce the config delta between
distros would be appreciated. In practice, I only expect lxc.cap.drop
and lxc.mount.entry to really vary between distros (depending on the
init system, the rest should be mostly common.
Diff from the RFC:
- Add archlinux to the mix
- Drop /etc/hostname from the clone hook
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2014-06-20 17:20:06 -04:00
config/templates/userns.conf
2014-03-27 16:46:38 -04:00
config/yum/Makefile
2008-11-18 13:45:49 +00:00
2010-05-12 23:44:28 +02:00
doc/Makefile
2013-11-25 13:42:09 +00:00
doc/api/Makefile
2013-02-08 18:49:52 -05:00
doc/legacy/lxc-ls.sgml
doc/lxc-attach.sgml
2013-12-16 15:32:47 -05:00
doc/lxc-autostart.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-cgroup.sgml
doc/lxc-checkconfig.sgml
2013-02-08 16:58:01 -06:00
doc/lxc-clone.sgml
2014-01-23 11:38:47 -05:00
doc/lxc-config.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-console.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-create.sgml
doc/lxc-destroy.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-device.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-execute.sgml
doc/lxc-freeze.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-info.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-ls.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-monitor.sgml
2013-09-12 15:07:11 -05:00
doc/lxc-snapshot.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-start-ephemeral.sgml
doc/lxc-start.sgml
doc/lxc-stop.sgml
2013-01-24 11:42:22 -05:00
doc/lxc-top.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-unfreeze.sgml
doc/lxc-unshare.sgml
2013-12-17 11:02:44 -06:00
doc/lxc-user-nic.sgml
2014-01-17 15:15:45 -06:00
doc/lxc-usernsexec.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-wait.sgml
2008-11-19 16:58:09 +00:00
doc/lxc.conf.sgml
2014-01-22 16:13:24 -05:00
doc/lxc.container.conf.sgml
doc/lxc.system.conf.sgml
2013-12-17 11:02:44 -06:00
doc/lxc-usernet.sgml
2008-11-20 15:04:09 +00:00
doc/lxc.sgml
2009-05-28 15:32:30 +02:00
doc/common_options.sgml
2009-05-28 15:32:29 +02:00
doc/see_also.sgml
2008-11-18 13:45:49 +00:00
2010-05-27 14:27:13 +02:00
doc/rootfs/Makefile
2009-11-19 15:06:02 +01:00
doc/examples/Makefile
doc/examples/lxc-macvlan.conf
2009-12-15 10:14:27 +01:00
doc/examples/lxc-vlan.conf
2009-11-19 15:06:02 +01:00
doc/examples/lxc-no-netns.conf
doc/examples/lxc-empty-netns.conf
doc/examples/lxc-phys.conf
doc/examples/lxc-veth.conf
2010-01-08 15:19:20 +01:00
doc/examples/lxc-complex.conf
2009-11-19 15:06:02 +01:00
2013-09-05 11:38:32 +00:00
doc/ja/Makefile
doc/ja/legacy/lxc-ls.sgml
doc/ja/lxc-attach.sgml
2013-12-20 21:27:45 +09:00
doc/ja/lxc-autostart.sgml
2013-09-05 11:38:32 +00:00
doc/ja/lxc-cgroup.sgml
doc/ja/lxc-checkconfig.sgml
doc/ja/lxc-clone.sgml
2014-01-24 18:37:22 +09:00
doc/ja/lxc-config.sgml
2013-09-05 11:38:32 +00:00
doc/ja/lxc-console.sgml
doc/ja/lxc-create.sgml
doc/ja/lxc-destroy.sgml
doc/ja/lxc-device.sgml
doc/ja/lxc-execute.sgml
doc/ja/lxc-freeze.sgml
doc/ja/lxc-info.sgml
doc/ja/lxc-ls.sgml
doc/ja/lxc-monitor.sgml
2013-10-08 16:15:05 +09:00
doc/ja/lxc-snapshot.sgml
2013-09-05 11:38:32 +00:00
doc/ja/lxc-start-ephemeral.sgml
doc/ja/lxc-start.sgml
doc/ja/lxc-stop.sgml
doc/ja/lxc-top.sgml
doc/ja/lxc-unfreeze.sgml
doc/ja/lxc-unshare.sgml
2013-12-18 16:25:45 +09:00
doc/ja/lxc-user-nic.sgml
2014-01-20 16:07:46 +09:00
doc/ja/lxc-usernsexec.sgml
2013-09-05 11:38:32 +00:00
doc/ja/lxc-wait.sgml
doc/ja/lxc.conf.sgml
2014-01-23 19:56:41 +09:00
doc/ja/lxc.container.conf.sgml
doc/ja/lxc.system.conf.sgml
2013-12-18 16:25:45 +09:00
doc/ja/lxc-usernet.sgml
2013-09-05 11:38:32 +00:00
doc/ja/lxc.sgml
doc/ja/common_options.sgml
doc/ja/see_also.sgml
2013-02-19 15:44:19 -05:00
hooks/Makefile
2010-06-07 11:33:55 +02:00
templates/Makefile
2014-01-14 00:06:26 +01:00
templates/lxc-alpine
templates/lxc-altlinux
templates/lxc-archlinux
templates/lxc-busybox
templates/lxc-centos
2013-05-10 00:52:22 -05:00
templates/lxc-cirros
2010-06-07 11:33:55 +02:00
templates/lxc-debian
2014-01-10 17:28:07 -05:00
templates/lxc-download
2010-06-07 11:33:55 +02:00
templates/lxc-fedora
2014-01-14 00:06:26 +01:00
templates/lxc-gentoo
2013-10-09 13:55:57 +04:00
templates/lxc-openmandriva
2014-01-14 00:06:26 +01:00
templates/lxc-opensuse
2012-10-05 16:40:21 -05:00
templates/lxc-oracle
2013-10-09 19:00:32 +09:00
templates/lxc-plamo
2014-01-14 00:06:26 +01:00
templates/lxc-sshd
templates/lxc-ubuntu
templates/lxc-ubuntu-cloud
2008-11-28 15:36:51 +00:00
2010-05-12 23:44:28 +02:00
src/Makefile
2008-08-06 14:32:29 +00:00
src/lxc/Makefile
2009-03-24 13:56:37 +01:00
src/lxc/lxc-checkconfig
2014-03-04 13:20:10 -05:00
src/lxc/lxc-ls
2012-09-11 17:06:05 -04:00
src/lxc/lxc-start-ephemeral
2012-12-04 12:12:36 -05:00
src/lxc/legacy/lxc-ls
2013-02-06 15:11:19 -06:00
src/lxc/lxc.functions
2013-12-01 23:14:17 -05:00
src/lxc/version.h
2012-08-27 19:04:43 -04:00
src/python-lxc/Makefile
2013-01-24 11:42:22 -05:00
src/lua-lxc/Makefile
2012-08-27 18:53:00 -04:00
src/tests/Makefile
2014-01-24 12:51:01 -05:00
src/tests/lxc-test-usernic
2008-08-06 14:32:29 +00:00
])
AC_CONFIG_COMMANDS([default],[[]],[[]])
AC_OUTPUT
2013-12-15 18:48:38 -05:00
# Configuration overview
cat << EOF
----------------------------
Environment:
- compiler: $CC
- distribution: $with_distro
2014-01-06 14:05:12 -05:00
- init script type(s): $init_script
2013-12-15 18:48:38 -05:00
- rpath: $enable_rpath
2013-12-23 22:12:17 +01:00
- GnuTLS: $enable_gnutls
2014-01-20 23:49:19 -05:00
- Bash integration: $enable_bash
2014-07-21 17:48:55 -05:00
- Openvswitch: $enable_ovs
2013-12-15 18:48:38 -05:00
Security features:
- Apparmor: $enable_apparmor
- Linux capabilities: $enable_capabilities
- seccomp: $enable_seccomp
- SELinux: $enable_selinux
2014-01-14 16:41:36 -06:00
- cgmanager: $enable_cgmanager
2013-12-15 18:48:38 -05:00
Bindings:
- lua: $enable_lua
- python3: $enable_python
Documentation:
- examples: $enable_examples
- API documentation: $enable_api_docs
- user documentation: $enable_doc
Debugging:
- tests: $enable_tests
- mutex debugging: $enable_mutex_debugging
Paths:
- Logs in configpath: $enable_configpath_log
EOF
2014-01-04 00:00:04 -05:00
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