<div dir="ltr">I found another issue where the Python build script is trying to create objects inside the build dir using the relative paths to the source dir (like build/something/../../../lxc/src), which doesn't always work. I'll fix that as well.<br>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 24, 2014 at 12:17 AM, Daniel Miranda <span dir="ltr"><<a href="mailto:danielkza2@gmail.com" target="_blank">danielkza2@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I noticed a small mistake, which unfortunately breaks the build after calling make clean: config/etc/Makefile.am should not remove default.conf. I'll send a patch fixing it in a minute.<br>

</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">On Fri, Aug 22, 2014 at 4:02 PM, Stéphane Graber <span dir="ltr"><<a href="mailto:stgraber@ubuntu.com" target="_blank">stgraber@ubuntu.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>On Thu, Aug 21, 2014 at 07:56:39AM -0300, Daniel Miranda wrote:<br>
> Building LXC in a separate target directory, by running configure from<br>
> outside the source tree, failed with multiple errors, mostly in the<br>
> Python and Lua extensions, due to assuming the source dir and build dir<br>
> are the same in a few places. To fix that:<br>
><br>
> - Pre-process setup.py with the appropriate directories at configure<br>
>   time<br>
> - Introduce the build dir as an include path in the Lua Makefile<br>
> - Link the default container configuration file from the alternatives<br>
>   in the configure stage, instead of setting a variable and using it<br>
>   in the Makefile<br>
><br>
> Signed-off-by: Daniel Miranda <<a href="mailto:danielkza2@gmail.com" target="_blank">danielkza2@gmail.com</a>><br>
<br>
</div>Acked-by: Stéphane Graber <<a href="mailto:stgraber@ubuntu.com" target="_blank">stgraber@ubuntu.com</a>><br>
<div><div><br>
> ---<br>
>  config/etc/Makefile.am     |  4 ----<br>
>  <a href="http://configure.ac" target="_blank">configure.ac</a>               |  4 +++-<br>
>  src/lua-lxc/Makefile.am    |  4 ++--<br>
>  src/python-lxc/Makefile.am |  3 +--<br>
>  src/python-lxc/setup.py    | 33 ---------------------------------<br>
>  src/python-lxc/<a href="http://setup.py.in" target="_blank">setup.py.in</a> | 35 +++++++++++++++++++++++++++++++++++<br>
>  6 files changed, 41 insertions(+), 42 deletions(-)<br>
>  delete mode 100644 src/python-lxc/setup.py<br>
>  create mode 100644 src/python-lxc/<a href="http://setup.py.in" target="_blank">setup.py.in</a><br>
><br>
> diff --git a/config/etc/Makefile.am b/config/etc/Makefile.am<br>
> index 81d7709..03193da 100644<br>
> --- a/config/etc/Makefile.am<br>
> +++ b/config/etc/Makefile.am<br>
> @@ -1,12 +1,8 @@<br>
>  configdir = $(sysconfdir)/lxc<br>
>  config_DATA = default.conf<br>
> -distroconf = @LXC_DISTRO_CONF@<br>
><br>
>  EXTRA_DIST = default.conf.ubuntu default.conf.libvirt default.conf.unknown<br>
><br>
> -default.conf:<br>
> -     cp $(distroconf) $@<br>
> -<br>
>  clean-local:<br>
>       @$(RM) -f default.conf<br>
><br>
> diff --git a/<a href="http://configure.ac" target="_blank">configure.ac</a> b/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> index 462217e..152ef5a 100644<br>
> --- a/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> +++ b/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
> @@ -73,6 +73,8 @@ AC_MSG_RESULT([$with_distro])<br>
>  AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu" -o x"$with_distro" = "xraspbian"])<br>
>  AM_CONDITIONAL([DISTRO_UBUNTU], [test "x$with_distro" = "xubuntu"])<br>
><br>
> +AC_CONFIG_LINKS([config/etc/default.conf:config/etc/${distroconf}])<br>
> +<br>
>  # Check for init system type<br>
>  AC_MSG_CHECKING([for init system type])<br>
>  AC_ARG_WITH([init-script],<br>
> @@ -523,7 +525,6 @@ AS_AC_EXPAND(LXC_DEFAULT_CONFIG, "$sysconfdir/lxc/default.conf")<br>
>  AS_AC_EXPAND(DATADIR, "$datadir")<br>
>  AS_AC_EXPAND(LOCALSTATEDIR, "$localstatedir")<br>
>  AS_AC_EXPAND(DOCDIR, "$docdir")<br>
> -AS_AC_EXPAND(LXC_DISTRO_CONF, "$distroconf")<br>
>  AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")<br>
>  AS_AC_EXPAND(LXCPATH, "$with_config_path")<br>
>  AS_AC_EXPAND(LXC_GLOBAL_CONF, "$with_global_conf")<br>
> @@ -759,6 +760,7 @@ AC_CONFIG_FILES([<br>
>       src/lxc/lxc.functions<br>
>       src/lxc/version.h<br>
>       src/python-lxc/Makefile<br>
> +     src/python-lxc/setup.py<br>
><br>
>       src/lua-lxc/Makefile<br>
><br>
> diff --git a/src/lua-lxc/Makefile.am b/src/lua-lxc/Makefile.am<br>
> index 6201adc..9b73df1 100644<br>
> --- a/src/lua-lxc/Makefile.am<br>
> +++ b/src/lua-lxc/Makefile.am<br>
> @@ -11,13 +11,13 @@ so_PROGRAMS = core.so<br>
><br>
>  core_so_SOURCES = core.c<br>
><br>
> -AM_CFLAGS=-I$(top_srcdir)/src $(LUA_CFLAGS) -DVERSION=\"$(VERSION)\" -DLXCPATH=\"$(LXCPATH)\"<br>
> +AM_CFLAGS=-I$(top_builddir)/src -I$(top_srcdir)/src $(LUA_CFLAGS) -DVERSION=\"$(VERSION)\" -DLXCPATH=\"$(LXCPATH)\"<br>
><br>
>  core_so_CFLAGS = -fPIC -DPIC $(AM_CFLAGS)<br>
><br>
>  core_so_LDFLAGS = \<br>
>       -shared \<br>
> -     -L$(top_srcdir)/src/lxc \<br>
> +     -L$(top_builddir)/src/lxc \<br>
>       -Wl,-soname,core.so.$(firstword $(subst ., ,$(VERSION)))<br>
><br>
>  core_so_LDADD = -llxc<br>
> diff --git a/src/python-lxc/Makefile.am b/src/python-lxc/Makefile.am<br>
> index b1c10b5..4a014df 100644<br>
> --- a/src/python-lxc/Makefile.am<br>
> +++ b/src/python-lxc/Makefile.am<br>
> @@ -7,7 +7,7 @@ else<br>
>  endif<br>
><br>
>  all:<br>
> -     CFLAGS="$(CFLAGS) -I ../../src -L../../src/lxc/" $(PYTHON) setup.py build<br>
> +     $(PYTHON) setup.py build<br>
><br>
>  install:<br>
>       if [ "$(DESTDIR)" = "" ]; then \<br>
> @@ -21,7 +21,6 @@ clean-local:<br>
><br>
>  endif<br>
>  EXTRA_DIST = \<br>
> -     setup.py \<br>
>       lxc.c \<br>
>       lxc/__init__.py \<br>
>       examples/api_test.py \<br>
> diff --git a/src/python-lxc/setup.py b/src/python-lxc/setup.py<br>
> deleted file mode 100644<br>
> index a1061f1..0000000<br>
> --- a/src/python-lxc/setup.py<br>
> +++ /dev/null<br>
> @@ -1,33 +0,0 @@<br>
> -#!/usr/bin/python3<br>
> -#<br>
> -# python-lxc: Python bindings for LXC<br>
> -#<br>
> -# (C) Copyright Canonical Ltd. 2012<br>
> -#<br>
> -# Authors:<br>
> -# Stéphane Graber <<a href="mailto:stgraber@ubuntu.com" target="_blank">stgraber@ubuntu.com</a>><br>
> -#<br>
> -# This library is free software; you can redistribute it and/or<br>
> -# modify it under the terms of the GNU Lesser General Public<br>
> -# License as published by the Free Software Foundation; either<br>
> -# version 2.1 of the License, or (at your option) any later version.<br>
> -#<br>
> -# This library is distributed in the hope that it will be useful,<br>
> -# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
> -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU<br>
> -# Lesser General Public License for more details.<br>
> -#<br>
> -# You should have received a copy of the GNU Lesser General Public<br>
> -# License along with this library; if not, write to the Free Software<br>
> -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA<br>
> -<br>
> -from distutils.core import setup, Extension<br>
> -<br>
> -module = Extension('_lxc', sources=['lxc.c'], libraries=['lxc'])<br>
> -<br>
> -setup(name='_lxc',<br>
> -      version='0.1',<br>
> -      description='LXC',<br>
> -      packages=['lxc'],<br>
> -      package_dir={'lxc': 'lxc'},<br>
> -      ext_modules=[module])<br>
> diff --git a/src/python-lxc/<a href="http://setup.py.in" target="_blank">setup.py.in</a> b/src/python-lxc/<a href="http://setup.py.in" target="_blank">setup.py.in</a><br>
> new file mode 100644<br>
> index 0000000..4304f75<br>
> --- /dev/null<br>
> +++ b/src/python-lxc/<a href="http://setup.py.in" target="_blank">setup.py.in</a><br>
> @@ -0,0 +1,35 @@<br>
> +#!/usr/bin/python3<br>
> +#<br>
> +# python-lxc: Python bindings for LXC<br>
> +#<br>
> +# (C) Copyright Canonical Ltd. 2012<br>
> +#<br>
> +# Authors:<br>
> +# Stéphane Graber <<a href="mailto:stgraber@ubuntu.com" target="_blank">stgraber@ubuntu.com</a>><br>
> +#<br>
> +# This library is free software; you can redistribute it and/or<br>
> +# modify it under the terms of the GNU Lesser General Public<br>
> +# License as published by the Free Software Foundation; either<br>
> +# version 2.1 of the License, or (at your option) any later version.<br>
> +#<br>
> +# This library is distributed in the hope that it will be useful,<br>
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU<br>
> +# Lesser General Public License for more details.<br>
> +#<br>
> +# You should have received a copy of the GNU Lesser General Public<br>
> +# License along with this library; if not, write to the Free Software<br>
> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA<br>
> +<br>
> +from distutils.core import setup, Extension<br>
> +<br>
> +module = Extension('_lxc', sources=['@srcdir@/lxc.c'],<br>
> +                   include_dirs=['@top_builddir@/src', '@top_srcdir@/src'],<br>
> +                   library_dirs=['@top_builddir@/src/lxc'], libraries=['lxc'])<br>
> +<br>
> +setup(name='_lxc',<br>
> +      version='0.1',<br>
> +      description='LXC',<br>
> +      packages=['lxc'],<br>
> +      package_dir={'lxc': '@srcdir@/lxc'},<br>
> +      ext_modules=[module])<br>
> --<br>
> 1.9.3<br>
><br>
</div></div>> _______________________________________________<br>
> lxc-devel mailing list<br>
> <a href="mailto:lxc-devel@lists.linuxcontainers.org" target="_blank">lxc-devel@lists.linuxcontainers.org</a><br>
> <a href="http://lists.linuxcontainers.org/listinfo/lxc-devel" target="_blank">http://lists.linuxcontainers.org/listinfo/lxc-devel</a><br>
<span><font color="#888888"><br>
--<br>
Stéphane Graber<br>
Ubuntu developer<br>
<a href="http://www.ubuntu.com" target="_blank">http://www.ubuntu.com</a><br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>