From 1ae61e9515dd82367fd518c4ba65f173f3e1a35f Mon Sep 17 00:00:00 2001 From: Johannes Heimansberg Date: Thu, 30 Jan 2025 08:25:30 +0100 Subject: [PATCH] lxc: update to 6.0.3. Closes: #54147 [via git-merge-pr] --- srcpkgs/lxc/patches/01-meson-docbook2x.patch | 45 -- srcpkgs/lxc/patches/02-distrosysconfdir.patch | 63 --- srcpkgs/lxc/patches/glibc-2.36.patch | 383 ------------------ srcpkgs/lxc/template | 8 +- 4 files changed, 4 insertions(+), 495 deletions(-) delete mode 100644 srcpkgs/lxc/patches/01-meson-docbook2x.patch delete mode 100644 srcpkgs/lxc/patches/02-distrosysconfdir.patch delete mode 100644 srcpkgs/lxc/patches/glibc-2.36.patch diff --git a/srcpkgs/lxc/patches/01-meson-docbook2x.patch b/srcpkgs/lxc/patches/01-meson-docbook2x.patch deleted file mode 100644 index da7ddeb6159..00000000000 --- a/srcpkgs/lxc/patches/01-meson-docbook2x.patch +++ /dev/null @@ -1,45 +0,0 @@ -commit 06f99c2599db8140bd839532caa8f6ee0d1c3ff6 -Author: Cameron Nemo -Date: Tue Aug 16 20:30:39 2022 -0700 - - meson: fix docbook2x detection - - docbook2man can sometimes be docbook2x and other times be docbook-utils. - Rather than compare paths, use version constraints to detect version. - - Signed-off-by: Cameron Nemo - -diff --git a/meson.build b/meson.build -index 666824c5a..2b160d4ac 100644 ---- a/meson.build -+++ b/meson.build -@@ -324,9 +324,6 @@ endif - generate_date = run_command(date, '--utc', '--date=@' + time_epoch, '+%Y-%m-%d', check: true).stdout().strip() - - ## Manpages. --sgml2man = find_program('docbook2X2man', 'docbook2x-man', 'db2x_docbook2man', 'docbook2man', 'docbook-to-man', required: want_mans) --docbook2man = find_program('docbook2man', required: false) -- - docconf = configuration_data() - docconf.set('builddir', '.') - docconf.set('BINDIR', bindir) -@@ -341,10 +338,15 @@ docconf.set('LXCTEMPLATEDIR', lxctemplatedir) - docconf.set('LXC_USERNIC_CONF', lxc_user_network_conf) - docconf.set('LXC_USERNIC_DB', lxc_user_network_db) - docconf.set('PACKAGE_VERSION', version_data.get('LXC_VERSION')) --if sgml2man.found() and docbook2man.found() and sgml2man.full_path() == docbook2man.full_path() -- docconf.set('docdtd', '"-//Davenport//DTD DocBook V3.0//EN"') --else -- docconf.set('docdtd', '"-//OASIS//DTD DocBook XML" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"') -+docconf.set('docdtd', '"-//OASIS//DTD DocBook XML" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"') -+sgml2man = find_program('docbook2X2man', 'docbook2x-man', 'db2x_docbook2man', 'docbook2man', 'docbook-to-man', required: false, version: '>=0.8') -+if not sgml2man.found() -+ sgml2man = find_program('docbook2man', required: false, version: '<0.8') -+ if sgml2man.found() -+ docconf.set('docdtd', '"-//Davenport//DTD DocBook V3.0//EN"') -+ elif want_mans -+ error('missing required docbook2x or docbook-utils dependency') -+ endif - endif - - ## Threads. diff --git a/srcpkgs/lxc/patches/02-distrosysconfdir.patch b/srcpkgs/lxc/patches/02-distrosysconfdir.patch deleted file mode 100644 index aff41ff4914..00000000000 --- a/srcpkgs/lxc/patches/02-distrosysconfdir.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 16ebb29dccb35bf74e8a19e8c45d2513f927476f Mon Sep 17 00:00:00 2001 -Message-Id: <16ebb29dccb35bf74e8a19e8c45d2513f927476f.1660130248.git.congdanhqx@gmail.com> -From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= - -Date: Tue, 9 Aug 2022 22:24:09 +0700 -Subject: [PATCH] meson.build: allow explicit distrosysconfdir -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Allows either: - -- Build inside minimal-and-clean chroot with neither - /etc/sysconfig nor /etc/default available. -- Cross Compile lxc from foreign distro, - let's say host distro uses /etc/sysconfig and build distro - uses /etc/default and vice versus. - -Signed-off-by: Đoàn Trần Công Danh ---- - meson.build | 8 ++++++-- - meson_options.txt | 3 +++ - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index a145faf0..b27cc8ed 100644 ---- a/meson.build -+++ b/meson.build -@@ -117,14 +117,18 @@ conf.set('SYSCONFDIR', sysconfdir) - - # Set sysconfdir - fs = import('fs') --if fs.is_dir('/etc/sysconfig') -+distrosysconfdir = get_option('distrosysconfdir') -+if distrosysconfdir != '' -+ distrosysconfdir = join_paths(sysconfdir, distrosysconfdir) -+ conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir) -+elif fs.is_dir('/etc/sysconfig') - distrosysconfdir = join_paths(sysconfdir, 'sysconfig') - conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir) - elif fs.is_dir('/etc/default') - distrosysconfdir = join_paths(sysconfdir, 'default') - conf.set('LXC_DISTRO_SYSCONF', distrosysconfdir) - else -- distrosysconfdir = '' -+ error('"distrosysconfdir" is not set') - endif - - # Cross-compile on Android. -diff --git a/meson_options.txt b/meson_options.txt -index c14dacf2..de583a08 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -115,3 +115,6 @@ option('thread-safety', type : 'boolean', value : 'true', - # was --{disable,enable}-memfd-rexec in autotools - option('memfd-rexec', type : 'boolean', value : 'true', - description : 'whether to rexec the lxc-attach binary when attaching to a container') -+ -+option('distrosysconfdir', type : 'string', value: '', -+ description: 'relative path to sysconfdir for distro default configuration') --- -2.37.1.561.ga4036fcf2c - diff --git a/srcpkgs/lxc/patches/glibc-2.36.patch b/srcpkgs/lxc/patches/glibc-2.36.patch deleted file mode 100644 index e186c7fbb28..00000000000 --- a/srcpkgs/lxc/patches/glibc-2.36.patch +++ /dev/null @@ -1,383 +0,0 @@ -From c1115e1503bf955c97f4cf3b925a6a9f619764c3 Mon Sep 17 00:00:00 2001 -From: Christian Brauner -Date: Tue, 9 Aug 2022 16:14:25 +0200 -Subject: [PATCH 1/3] build: detect where struct mount_attr is declared - -Fixes: #4176 -Signed-off-by: Christian Brauner (Microsoft) ---- - meson.build | 30 ++++++++++++++++++++++++++++-- - src/lxc/conf.c | 6 +++--- - src/lxc/conf.h | 2 +- - src/lxc/mount_utils.c | 6 +++--- - src/lxc/syscall_wrappers.h | 12 ++++++++++-- - 5 files changed, 45 insertions(+), 11 deletions(-) - -diff --git a/meson.build b/meson.build -index a145faf069..f679aabbc8 100644 ---- a/meson.build -+++ b/meson.build -@@ -590,7 +590,6 @@ decl_headers = ''' - foreach decl: [ - '__aligned_u64', - 'struct clone_args', -- 'struct mount_attr', - 'struct open_how', - 'struct rtnl_link_stats64', - ] -@@ -610,7 +609,6 @@ foreach tuple: [ - ['struct seccomp_notif_sizes'], - ['struct clone_args'], - ['__aligned_u64'], -- ['struct mount_attr'], - ['struct open_how'], - ['struct rtnl_link_stats64'], - ] -@@ -630,6 +628,34 @@ foreach tuple: [ - endif - endforeach - -+## Types. -+decl_headers = ''' -+#include -+''' -+ -+# We get -1 if the size cannot be determined -+if cc.sizeof('struct mount_attr', prefix: decl_headers, args: '-D_GNU_SOURCE') > 0 -+ srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), true) -+ found_types += 'struct mount_attr (sys/mount.h)' -+else -+ srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), false) -+ missing_types += 'struct mount_attr (sys/mount.h)' -+endif -+ -+## Types. -+decl_headers = ''' -+#include -+''' -+ -+# We get -1 if the size cannot be determined -+if cc.sizeof('struct mount_attr', prefix: decl_headers, args: '-D_GNU_SOURCE') > 0 -+ srcconf.set10('HAVE_UAPI_' + 'struct mount_attr'.underscorify().to_upper(), true) -+ found_types += 'struct mount_attr (linux/mount.h)' -+else -+ srcconf.set10('HAVE_UAPI_' + 'struct mount_attr'.underscorify().to_upper(), false) -+ missing_types += 'struct mount_attr (linux/mount.h)' -+endif -+ - ## Headers. - foreach ident: [ - ['bpf', '''#include -diff --git a/src/lxc/conf.c b/src/lxc/conf.c -index ffbe74c2f6..4193cd07f5 100644 ---- a/src/lxc/conf.c -+++ b/src/lxc/conf.c -@@ -2885,7 +2885,7 @@ static int __lxc_idmapped_mounts_child(struct lxc_handler *handler, FILE *f) - struct lxc_mount_options opts = {}; - int dfd_from; - const char *source_relative, *target_relative; -- struct lxc_mount_attr attr = {}; -+ struct mount_attr attr = {}; - - ret = parse_lxc_mount_attrs(&opts, mntent.mnt_opts); - if (ret < 0) -@@ -3005,7 +3005,7 @@ static int __lxc_idmapped_mounts_child(struct lxc_handler *handler, FILE *f) - - /* Set propagation mount options. */ - if (opts.attr.propagation) { -- attr = (struct lxc_mount_attr) { -+ attr = (struct mount_attr) { - .propagation = opts.attr.propagation, - }; - -@@ -4109,7 +4109,7 @@ int lxc_idmapped_mounts_parent(struct lxc_handler *handler) - - for (;;) { - __do_close int fd_from = -EBADF, fd_userns = -EBADF; -- struct lxc_mount_attr attr = {}; -+ struct mount_attr attr = {}; - struct lxc_mount_options opts = {}; - ssize_t ret; - -diff --git a/src/lxc/conf.h b/src/lxc/conf.h -index 7dc2f15b60..772479f9e1 100644 ---- a/src/lxc/conf.h -+++ b/src/lxc/conf.h -@@ -223,7 +223,7 @@ struct lxc_mount_options { - unsigned long mnt_flags; - unsigned long prop_flags; - char *data; -- struct lxc_mount_attr attr; -+ struct mount_attr attr; - char *raw_options; - }; - -diff --git a/src/lxc/mount_utils.c b/src/lxc/mount_utils.c -index bba75f933c..88dd73ee36 100644 ---- a/src/lxc/mount_utils.c -+++ b/src/lxc/mount_utils.c -@@ -31,7 +31,7 @@ lxc_log_define(mount_utils, lxc); - * setting in @attr_set, but must also specify MOUNT_ATTR__ATIME in the - * @attr_clr field. - */ --static inline void set_atime(struct lxc_mount_attr *attr) -+static inline void set_atime(struct mount_attr *attr) - { - switch (attr->attr_set & MOUNT_ATTR__ATIME) { - case MOUNT_ATTR_RELATIME: -@@ -272,7 +272,7 @@ int create_detached_idmapped_mount(const char *path, int userns_fd, - { - __do_close int fd_tree_from = -EBADF; - unsigned int open_tree_flags = OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC; -- struct lxc_mount_attr attr = { -+ struct mount_attr attr = { - .attr_set = MOUNT_ATTR_IDMAP | attr_set, - .attr_clr = attr_clr, - .userns_fd = userns_fd, -@@ -335,7 +335,7 @@ int __fd_bind_mount(int dfd_from, const char *path_from, __u64 o_flags_from, - __u64 attr_clr, __u64 propagation, int userns_fd, - bool recursive) - { -- struct lxc_mount_attr attr = { -+ struct mount_attr attr = { - .attr_set = attr_set, - .attr_clr = attr_clr, - .propagation = propagation, -diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h -index a5e98b565c..c8a7d0c7b7 100644 ---- a/src/lxc/syscall_wrappers.h -+++ b/src/lxc/syscall_wrappers.h -@@ -18,6 +18,12 @@ - #include "macro.h" - #include "syscall_numbers.h" - -+#if HAVE_STRUCT_MOUNT_ATTR -+#include -+#elif HAVE_UAPI_STRUCT_MOUNT_ATTR -+#include -+#endif -+ - #ifdef HAVE_LINUX_MEMFD_H - #include - #endif -@@ -210,16 +216,18 @@ extern int fsmount(int fs_fd, unsigned int flags, unsigned int attr_flags); - /* - * mount_setattr() - */ --struct lxc_mount_attr { -+#if !HAVE_STRUCT_MOUNT_ATTR && !HAVE_UAPI_STRUCT_MOUNT_ATTR -+struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; - }; -+#endif - - #if !HAVE_MOUNT_SETATTR - static inline int mount_setattr(int dfd, const char *path, unsigned int flags, -- struct lxc_mount_attr *attr, size_t size) -+ struct mount_attr *attr, size_t size) - { - return syscall(__NR_mount_setattr, dfd, path, flags, attr, size); - } - -From ef1e0607b82e27350c2d677d649c6a0a9693fd40 Mon Sep 17 00:00:00 2001 -From: Christian Brauner -Date: Tue, 9 Aug 2022 16:27:40 +0200 -Subject: [PATCH 2/3] build: detect sys/pidfd.h availability - -Fixes: #4176 -Signed-off-by: Christian Brauner (Microsoft) ---- - meson.build | 1 + - src/lxc/process_utils.h | 6 ++++++ - 2 files changed, 7 insertions(+) - -diff --git a/meson.build b/meson.build -index f679aabbc8..e999542336 100644 ---- a/meson.build -+++ b/meson.build -@@ -735,6 +735,7 @@ foreach tuple: [ - ['sys/resource.h'], - ['sys/memfd.h'], - ['sys/personality.h'], -+ ['sys/pidfd.h'], - ['sys/signalfd.h'], - ['sys/timerfd.h'], - ['pty.h'], -diff --git a/src/lxc/process_utils.h b/src/lxc/process_utils.h -index 9c15b15741..ed84741d0e 100644 ---- a/src/lxc/process_utils.h -+++ b/src/lxc/process_utils.h -@@ -15,6 +15,10 @@ - #include - #include - -+#if HAVE_SYS_PIDFD_H -+#include -+#endif -+ - #include "compiler.h" - #include "syscall_numbers.h" - -@@ -136,9 +140,11 @@ - #endif - - /* waitid */ -+#if !HAVE_SYS_PIDFD_H - #ifndef P_PIDFD - #define P_PIDFD 3 - #endif -+#endif - - #ifndef CLONE_ARGS_SIZE_VER0 - #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */ - -From cbabe8abf11e7e7fb49c123bae31efdd9bc8f1e8 Mon Sep 17 00:00:00 2001 -From: Christian Brauner -Date: Tue, 9 Aug 2022 17:19:40 +0200 -Subject: [PATCH 3/3] build: check for FS_CONFIG_* header symbol in sys/mount.h - -Fixes: #4176 -Signed-off-by: Christian Brauner (Microsoft) ---- - meson.build | 59 +++++++++++++++++++++++++++++++++++++++++-- - src/lxc/mount_utils.h | 16 ++++++++++++ - 2 files changed, 73 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index e999542336..9f8a5de60c 100644 ---- a/meson.build -+++ b/meson.build -@@ -639,8 +639,7 @@ if cc.sizeof('struct mount_attr', prefix: decl_headers, args: '-D_GNU_SOURCE') > - found_types += 'struct mount_attr (sys/mount.h)' - else - srcconf.set10('HAVE_' + 'struct mount_attr'.underscorify().to_upper(), false) -- missing_types += 'struct mount_attr (sys/mount.h)' --endif -+ missing_types += 'struct mount_attr (sys/mount.h)' endif - - ## Types. - decl_headers = ''' -@@ -656,6 +655,62 @@ else - missing_types += 'struct mount_attr (linux/mount.h)' - endif - -+if cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG') -+ srcconf.set10('HAVE_' + 'FSCONFIG_SET_FLAG'.underscorify().to_upper(), true) -+ found_types += 'FSCONFIG_SET_FLAG' -+else -+ srcconf.set10('HAVE_' + 'FSCONFIG_SET_FLAG'.underscorify().to_upper(), false) -+ missing_types += 'FSCONFIG_SET_FLAG' -+endif -+ -+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_STRING') -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_STRING'.underscorify().to_upper(), true) -+ found_types += 'FS_CONFIG_SET_STRING' -+else -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_STRING'.underscorify().to_upper(), false) -+ missing_types += 'FS_CONFIG_SET_STRING' -+endif -+ -+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_BINARY') -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_BINARY'.underscorify().to_upper(), true) -+ found_types += 'FS_CONFIG_SET_BINARY' -+else -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_BINARY'.underscorify().to_upper(), false) -+ missing_types += 'FS_CONFIG_SET_BINARY' -+endif -+ -+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_PATH_EMPTY') -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_EMPTY'.underscorify().to_upper(), true) -+ found_types += 'FS_CONFIG_SET_PATH_EMPTY' -+else -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_EMPTY'.underscorify().to_upper(), false) -+ missing_types += 'FS_CONFIG_SET_PATH_EMPTY' -+endif -+ -+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_PATH_FD') -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_FD'.underscorify().to_upper(), true) -+ found_types += 'FS_CONFIG_SET_PATH_FD' -+else -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_PATH_FD'.underscorify().to_upper(), false) -+ missing_types += 'FS_CONFIG_SET_PATH_FD' -+endif -+ -+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_CMD_CREATE') -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_CREATE'.underscorify().to_upper(), true) -+ found_types += 'FS_CONFIG_SET_CMD_CREATE' -+else -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_CREATE'.underscorify().to_upper(), false) -+ missing_types += 'FS_CONFIG_SET_CMD_CREATE' -+endif -+ -+if cc.has_header_symbol('sys/mount.h', 'FS_CONFIG_SET_CMD_RECONFIGURE') -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_RECONFIGURE'.underscorify().to_upper(), true) -+ found_types += 'FS_CONFIG_SET_CMD_RECONFIGURE' -+else -+ srcconf.set10('HAVE_' + 'FS_CONFIG_SET_CMD_RECONFIGURE'.underscorify().to_upper(), false) -+ missing_types += 'FS_CONFIG_SET_CMD_RECONFIGURE' -+endif -+ - ## Headers. - foreach ident: [ - ['bpf', '''#include -diff --git a/src/lxc/mount_utils.h b/src/lxc/mount_utils.h -index ea392672d8..fd34739459 100644 ---- a/src/lxc/mount_utils.h -+++ b/src/lxc/mount_utils.h -@@ -82,37 +82,53 @@ struct lxc_rootfs; - #endif - - /* fsconfig() commands */ -+#if !HAVE_FSCONFIG_SET_FLAG - #ifndef FSCONFIG_SET_FLAG - #define FSCONFIG_SET_FLAG 0 /* Set parameter, supplying no value */ - #endif -+#endif - -+#if !HAVE_FSCONFIG_SET_STRING - #ifndef FSCONFIG_SET_STRING - #define FSCONFIG_SET_STRING 1 /* Set parameter, supplying a string value */ - #endif -+#endif - -+#if !HAVE_FSCONFIG_SET_BINARY - #ifndef FSCONFIG_SET_BINARY - #define FSCONFIG_SET_BINARY 2 /* Set parameter, supplying a binary blob value */ - #endif -+#endif - -+#if !HAVE_FSCONFIG_SET_PATH - #ifndef FSCONFIG_SET_PATH - #define FSCONFIG_SET_PATH 3 /* Set parameter, supplying an object by path */ - #endif -+#endif - -+#if !HAVE_FSCONFIG_SET_PATH_EMPTY - #ifndef FSCONFIG_SET_PATH_EMPTY - #define FSCONFIG_SET_PATH_EMPTY 4 /* Set parameter, supplying an object by (empty) path */ - #endif -+#endif - -+#if !HAVE_FSCONFIG_SET_FD - #ifndef FSCONFIG_SET_FD - #define FSCONFIG_SET_FD 5 /* Set parameter, supplying an object by fd */ - #endif -+#endif - -+#if !HAVE_FSCONFIG_CMD_CREATE - #ifndef FSCONFIG_CMD_CREATE - #define FSCONFIG_CMD_CREATE 6 /* Invoke superblock creation */ - #endif -+#endif - -+#if !FSCONFIG_CMD_RECONFIGURE - #ifndef FSCONFIG_CMD_RECONFIGURE - #define FSCONFIG_CMD_RECONFIGURE 7 /* Invoke superblock reconfiguration */ - #endif -+#endif - - /* fsmount() flags */ - #ifndef FSMOUNT_CLOEXEC diff --git a/srcpkgs/lxc/template b/srcpkgs/lxc/template index f7eb925a0ca..23d734a6480 100644 --- a/srcpkgs/lxc/template +++ b/srcpkgs/lxc/template @@ -1,14 +1,14 @@ # Template file for 'lxc' pkgname=lxc -version=5.0.1 -revision=3 +version=6.0.3 +revision=1 build_style=meson configure_args="-Dpam-cgroup=true -Drootfs-mount-path=/var/lxc/containers -Ddistrosysconfdir=default -Dlog-path=/var/lxc/log -Dinit-script=[]" hostmakedepends="pkg-config docbook2x" makedepends="libcap-devel libseccomp-devel openssl-devel libapparmor-devel - pam-devel" + pam-devel dbus-devel" depends="xz wget" _desc="Linux Containers" short_desc="${_desc} - utilities" @@ -16,7 +16,7 @@ maintainer="Cameron Nemo " license="LGPL-2.1-or-later" homepage="https://linuxcontainers.org" distfiles="https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz" -checksum=d8195423bb1e206f8521d24b6cde4789f043960c7cf065990a9cf741dcfd4222 +checksum=adac0837d2abfd2903916eaf56f60756f131327311f4f25ad917f6a71f73f98c conf_files="/etc/lxc/default.conf" make_dirs="