# SPDX-License-Identifier: LGPL-2.1-or-later
hooks_include_directories = include_directories(
- '../',
- '../src/include')
+ '../',
+ '../src/include')
hooks_unmount_namespace_sources = files('unmount-namespace.c')
hook_programs += executable(
- 'unmount-namespace',
- hooks_unmount_namespace_sources,
- include_directories : hooks_include_directories,
- install : true,
- install_dir : lxchookdir)
+ 'unmount-namespace',
+ hooks_unmount_namespace_sources,
+ include_directories: hooks_include_directories,
+ install: true,
+ install_dir: lxchookdir)
hook_programs = configure_file(
- configuration : dummy_config_data,
- input : 'clonehostname',
- output : 'clonehostname')
-install_data(join_paths(project_build_root, 'hooks/clonehostname'), install_dir : lxchookdir)
+ configuration: dummy_config_data,
+ input: 'clonehostname',
+ output: 'clonehostname')
+install_data(join_paths(project_build_root, 'hooks/clonehostname'), install_dir: lxchookdir)
hook_programs = configure_file(
- configuration : dummy_config_data,
- input : 'dhclient-script',
- output : 'dhclient-script')
-install_data(join_paths(project_build_root, 'hooks/dhclient-script'), install_dir : lxchookdir)
+ configuration: dummy_config_data,
+ input: 'dhclient-script',
+ output: 'dhclient-script')
+install_data(join_paths(project_build_root, 'hooks/dhclient-script'), install_dir: lxchookdir)
dhclient_config_data = configuration_data()
dhclient_config_data.set_quoted('LXCHOOKDIR', lxchookdir)
dhclient_config_data.set_quoted('SYSCONFDIR', sysconfdir)
hook_programs = configure_file(
- configuration : dhclient_config_data,
- input : 'dhclient.in',
- output : 'dhclient')
-install_data(join_paths(project_build_root, 'hooks/dhclient'), install_dir : lxchookdir)
+ configuration: dhclient_config_data,
+ input: 'dhclient.in',
+ output: 'dhclient')
+install_data(join_paths(project_build_root, 'hooks/dhclient'), install_dir: lxchookdir)
hook_programs = configure_file(
- configuration : dummy_config_data,
- input : 'mountecryptfsroot',
- output : 'mountecryptfsroot')
-install_data(join_paths(project_build_root, 'hooks/mountecryptfsroot'), install_dir : lxchookdir)
+ configuration: dummy_config_data,
+ input: 'mountecryptfsroot',
+ output: 'mountecryptfsroot')
+install_data(join_paths(project_build_root, 'hooks/mountecryptfsroot'), install_dir: lxchookdir)
hook_programs = configure_file(
- configuration : dummy_config_data,
- input : 'nvidia',
- output : 'nvidia')
-install_data(join_paths(project_build_root, 'hooks/nvidia'), install_dir : lxchookdir)
+ configuration: dummy_config_data,
+ input: 'nvidia',
+ output: 'nvidia')
+install_data(join_paths(project_build_root, 'hooks/nvidia'), install_dir: lxchookdir)
hook_programs = configure_file(
- configuration : dummy_config_data,
- input : 'squid-deb-proxy-client',
- output : 'squid-deb-proxy-client')
-install_data(join_paths(project_build_root, 'hooks/squid-deb-proxy-client'), install_dir : lxchookdir)
+ configuration: dummy_config_data,
+ input: 'squid-deb-proxy-client',
+ output: 'squid-deb-proxy-client')
+install_data(join_paths(project_build_root, 'hooks/squid-deb-proxy-client'), install_dir: lxchookdir)
hook_programs = configure_file(
- configuration : dummy_config_data,
- input : 'ubuntu-cloud-prep',
- output : 'ubuntu-cloud-prep')
-install_data(join_paths(project_build_root, 'hooks/ubuntu-cloud-prep'), install_dir : lxchookdir)
+ configuration: dummy_config_data,
+ input: 'ubuntu-cloud-prep',
+ output: 'ubuntu-cloud-prep')
+install_data(join_paths(project_build_root, 'hooks/ubuntu-cloud-prep'), install_dir: lxchookdir)
# SPDX-License-Identifier: LGPL-2.1-or-later
-project('lxc', 'c',
- version : '4.0.0',
- license : 'LGPLv2+',
- default_options: [
- 'b_lto=true',
- 'b_lto_mode=thin',
- 'b_colorout=always',
- 'b_asneeded=true',
- 'b_pie=true',
- 'b_staticpic=true',
- 'c_std=gnu11',
- 'warning_level=2',
- ],
- meson_version : '>= 0.48',
- )
+# Project.
+project(
+ 'lxc',
+ 'c',
+ version: '4.0.0',
+ license: 'LGPLv2+',
+ default_options: [
+ 'b_lto=true',
+ 'b_lto_mode=thin',
+ 'b_colorout=always',
+ 'b_asneeded=true',
+ 'b_pie=true',
+ 'b_staticpic=true',
+ 'c_std=gnu11',
+ 'warning_level=2',
+ ],
+ meson_version: '>= 0.48')
-liblxc_version = '4.0.0'
-
-conf = configuration_data()
-conf.set_quoted('PROJECT_URL', 'https://linuxcontainers.org/lxc/introduction/')
-conf.set('PROJECT_VERSION', meson.project_version(),
- description : 'Numerical project version (used where a simple number is expected)')
-conf.set('PACKAGE_VERSION', meson.project_version())
-conf.set('_GNU_SOURCE', true)
-conf.set('_FILE_OFFSET_BITS', 64)
-conf.set('__STDC_FORMAT_MACROS', true)
+cc = meson.get_compiler('c')
+pkgconfig = import('pkgconfig')
+# Version.
version_data = configuration_data()
version_data.set('LXC_VERSION_MAJOR', '4')
version_data.set('LXC_VERSION_MINOR', '0')
version_data.set('LXC_ABI', '4.0.7')
version_data.set('LXC_DEVEL', '1')
version_data.set('LXC_VERSION', '4.0.7-devel')
+liblxc_version = '4.0.0'
+
+# Configuration options.
+conf = configuration_data()
+conf.set_quoted('PROJECT', meson.project_name())
+conf.set_quoted('PROJECT_URL', 'https://linuxcontainers.org/lxc/')
+conf.set_quoted('PROJECT_VERSION', meson.project_version())
+conf.set_quoted('PACKAGE_VERSION', meson.project_version())
+conf.set('_GNU_SOURCE', true)
+conf.set('_FILE_OFFSET_BITS', 64)
+conf.set('__STDC_FORMAT_MACROS', true)
project_source_root = meson.current_source_dir()
project_build_root = meson.current_build_dir()
-# join_paths ignores the preceding arguments if an absolute component is
-# encountered, so this should canonicalize various paths when they are
-# absolute or relative.
+# Path handling.
prefixdir = get_option('prefix')
+
+apparmorcachedir = get_option('apparmor-cache-dir')
+globalconfig = get_option('global-config')
+localstatedir = join_paths('/', get_option('localstatedir'))
+logpath = get_option('log-path')
+lxcpathprefix = get_option('config-path')
+rootfsmount = get_option('rootfs-mount-dir')
+user_network_db_opt = get_option('user-network-db')
+user_network_conf_opt = get_option('user-network-conf')
+
bindir = join_paths(prefixdir, get_option('bindir'))
datadir = join_paths(prefixdir, get_option('datadir'))
docdir = join_paths(prefixdir, get_option('docdir'))
includedir = join_paths(prefixdir, get_option('includedir'))
libdir = join_paths(prefixdir, get_option('libdir'))
libexecdir = join_paths(prefixdir, get_option('libexecdir'))
-localstatedir = join_paths('/', get_option('localstatedir'))
+runtimepath = join_paths(prefixdir, get_option('runtime-path'))
sbindir = join_paths(prefixdir, get_option('sbindir'))
sysconfdir = join_paths(prefixdir, get_option('sysconfdir'))
-apparmorcachedir = get_option('apparmor-cache-dir')
-cgrouppattern = get_option('cgroup-pattern')
-globalconfig = get_option('global-config')
-
-logpath = get_option('log-path')
-lxcpathprefix = get_option('config-path')
-rootfsmount = get_option('rootfs-mount-dir')
-runtimepath = join_paths(prefixdir, get_option('runtime-path'))
-wants_io_uring = get_option('io-uring-event-loop')
-want_tests = get_option('tests')
-
-conf.set_quoted('BINDIR', bindir)
-conf.set_quoted('DATADIR', datadir)
-conf.set_quoted('DOCDIR', docdir)
-conf.set_quoted('INCLUDEDIR', includedir)
-conf.set_quoted('LOCALSTATEDIR', localstatedir)
-conf.set_quoted('LIBDIR', libdir)
-conf.set_quoted('LIBEXECDIR', libexecdir)
-conf.set_quoted('SBINDIR', sbindir)
-conf.set_quoted('SYSCONFDIR', sysconfdir)
-
-conf.set_quoted('LXCINITDIR', libexecdir)
-conf.set_quoted('DEFAULT_CGROUP_PATTERN', cgrouppattern)
-conf.set_quoted('RUNTIME_PATH', runtimepath)
-
lxcdefaultconfig = join_paths(sysconfdir, 'lxc/default.conf')
-conf.set_quoted('LXC_DEFAULT_CONFIG', lxcdefaultconfig)
-
+lxcglobalconfig = join_paths(sysconfdir, globalconfig)
lxcapparmorcachedir = join_paths(localstatedir, apparmorcachedir)
-conf.set_quoted('APPARMOR_CACHE_DIR', lxcapparmorcachedir)
-
lxcrootfsmount = join_paths(prefixdir, rootfsmount)
-conf.set_quoted('LXCROOTFSMOUNT', lxcrootfsmount)
-
-lxcglobalconfig = join_paths(sysconfdir, globalconfig)
-conf.set_quoted('LXC_GLOBAL_CONF', lxcglobalconfig)
-
lxclogpath = join_paths(localstatedir, logpath)
-conf.set_quoted('LOGPATH', lxclogpath)
-
lxcpath = join_paths(localstatedir, lxcpathprefix)
-conf.set_quoted('LXCPATH', lxcpath)
-
lxctemplateconfig = join_paths(datadir, 'lxc/config')
-conf.set_quoted('LXCTEMPLATECONFIG', lxctemplateconfig)
-
lxctemplatedir = join_paths(datadir, 'lxc/templates')
-conf.set_quoted('LXCTEMPLATEDIR', lxctemplatedir)
-
lxchookdir = join_paths(datadir, 'lxc/hooks')
-conf.set_quoted('LXCHOOKDIR', lxchookdir)
-
lxchookbindir = join_paths(libexecdir, 'lxc/hooks')
-conf.set_quoted('LXCBINHOOKDIR', lxchookbindir)
-
-user_network_conf_opt = get_option('user-network-conf')
lxc_user_network_conf = join_paths(sysconfdir, user_network_conf_opt)
-conf.set_quoted('LXC_USERNIC_CONF', lxc_user_network_conf)
-
-user_network_db_opt = get_option('user-network-db')
lxc_user_network_db = join_paths(runtimepath, user_network_db_opt)
-conf.set_quoted('LXC_USERNIC_DB', lxc_user_network_db)
-# AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date --utc --date=@${SOURCE_DATE_EPOCH:-$(date +%s)} '+%Y-%m-%d')")
-# AS_AC_EXPAND(LXC_USERNIC_DB, "$with_usernic_db")
-# AS_AC_EXPAND(LXC_DISTRO_SYSCONF, "$distrosysconf")
+conf.set_quoted('BINDIR', bindir)
+conf.set_quoted('DATADIR', datadir)
+conf.set_quoted('DOCDIR', docdir)
+conf.set_quoted('INCLUDEDIR', includedir)
+conf.set_quoted('LIBDIR', libdir)
+conf.set_quoted('LIBEXECDIR', libexecdir)
+conf.set_quoted('LOCALSTATEDIR', localstatedir)
+conf.set_quoted('RUNTIME_PATH', runtimepath)
+conf.set_quoted('SBINDIR', sbindir)
+conf.set_quoted('SYSCONFDIR', sysconfdir)
+
+conf.set_quoted('APPARMOR_CACHE_DIR', lxcapparmorcachedir)
+conf.set_quoted('LOGPATH', lxclogpath)
+conf.set_quoted('LXCBINHOOKDIR', lxchookbindir)
+conf.set_quoted('LXC_DEFAULT_CONFIG', lxcdefaultconfig)
+conf.set_quoted('LXC_GLOBAL_CONF', lxcglobalconfig)
+conf.set_quoted('LXCHOOKDIR', lxchookdir)
+conf.set_quoted('LXCINITDIR', libexecdir)
+conf.set_quoted('LXCPATH', lxcpath)
+conf.set_quoted('LXCROOTFSMOUNT', lxcrootfsmount)
+conf.set_quoted('LXCTEMPLATECONFIG', lxctemplateconfig)
+conf.set_quoted('LXCTEMPLATEDIR', lxctemplatedir)
+conf.set_quoted('LXC_USERNIC_CONF', lxc_user_network_conf)
+conf.set_quoted('LXC_USERNIC_DB', lxc_user_network_db)
+
+# Custom configuration.
+cgrouppattern = get_option('cgroup-pattern')
+wants_io_uring = get_option('io-uring-event-loop')
+want_tests = get_option('tests')
+
+conf.set_quoted('DEFAULT_CGROUP_PATTERN', cgrouppattern)
-cc = meson.get_compiler('c')
-pkgconfig = import('pkgconfig')
+dummy_config_data = configuration_data()
+dummy_config_data.set_quoted('DUMMY_VARIABLE', '1')
+# Build flags.
possible_cc_flags = [
- '-Wvla',
- '-Wimplicit-fallthrough=5',
- '-Wcast-align',
- '-Wstrict-prototypes',
- '-fno-strict-aliasing',
- '-fstack-clash-protection',
- '-fstack-protector-strong',
- '--param=ssp-buffer-size=4',
- '--mcet -fcf-protection',
- '-Werror=implicit-function-declaration',
- '-Wlogical-op',
- '-Wmissing-include-dirs',
- '-Wold-style-definition',
- '-Winit-self',
- '-Wunused-but-set-variable',
- '-Wno-unused-parameter',
- '-Wfloat-equal',
- '-Wsuggest-attribute=noreturn',
- '-Werror=return-type',
- '-Werror=incompatible-pointer-types',
- '-Wformat=2',
- '-Wshadow',
- '-Wendif-labels',
- '-Werror=overflow',
- '-fdiagnostics-show-option',
- '-Werror=shift-count-overflow',
- '-Werror=shift-overflow=2',
- '-Wdate-time',
- '-Wnested-externs',
- '-fasynchronous-unwind-tables',
- '-fexceptions',
- '-Warray-bounds',
- '-Wrestrict',
- '-Wreturn-local-addr',
- '-fsanitize=cfi',
- '-Wstringop-overflow',
+ '-Wvla',
+ '-Wimplicit-fallthrough=5',
+ '-Wcast-align',
+ '-Wstrict-prototypes',
+ '-fno-strict-aliasing',
+ '-fstack-clash-protection',
+ '-fstack-protector-strong',
+ '--param=ssp-buffer-size=4',
+ '--mcet -fcf-protection',
+ '-Werror=implicit-function-declaration',
+ '-Wlogical-op',
+ '-Wmissing-include-dirs',
+ '-Wold-style-definition',
+ '-Winit-self',
+ '-Wunused-but-set-variable',
+ '-Wno-unused-parameter',
+ '-Wfloat-equal',
+ '-Wsuggest-attribute=noreturn',
+ '-Werror=return-type',
+ '-Werror=incompatible-pointer-types',
+ '-Wformat=2',
+ '-Wshadow',
+ '-Wendif-labels',
+ '-Werror=overflow',
+ '-fdiagnostics-show-option',
+ '-Werror=shift-count-overflow',
+ '-Werror=shift-overflow=2',
+ '-Wdate-time',
+ '-Wnested-externs',
+ '-fasynchronous-unwind-tables',
+ '-fexceptions',
+ '-Warray-bounds',
+ '-Wrestrict',
+ '-Wreturn-local-addr',
+ '-fsanitize=cfi',
+ '-Wstringop-overflow',
]
possible_link_flags = [
- '-Wl,--gc-sections',
- '-Wl,-z,relro',
- '-Wl,-z,now',
- '-Wl,-fuse-ld=gold',
+ '-Wl,--gc-sections',
+ '-Wl,-z,relro',
+ '-Wl,-z,now',
+ '-Wl,-fuse-ld=gold',
]
if meson.version().version_compare('>=0.46')
- add_project_link_arguments(cc.get_supported_link_arguments(possible_link_flags), language : 'c')
+ add_project_link_arguments(cc.get_supported_link_arguments(possible_link_flags), language: 'c')
else
- add_project_link_arguments(possible_link_flags, language : 'c')
+ add_project_link_arguments(possible_link_flags, language: 'c')
endif
-add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c')
-
-foreach header : ['sys/resource.h',
- 'sys/memfd.h',
- 'sys/personality.h',
- 'sys/signalfd.h',
- 'sys/timerfd.h',
- 'pty.h',
- 'utmpx.h',
- ]
-
- conf.set10('HAVE_' + header.underscorify().to_upper(),
- cc.has_header(header))
-endforeach
-
-decl_headers = '''
-#include <uchar.h>
-#include <sys/mount.h>
-#include <sys/stat.h>
-#include <linux/fs.h>
-#include <linux/types.h>
-#include <linux/openat2.h>
-#include <linux/sched.h>
-'''
-
-foreach decl : [
- '__aligned_u64',
- 'struct mount_attr',
- 'struct open_how',
- 'struct clone_args',
- ]
-
- # We get -1 if the size cannot be determined
- if cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0
- conf.set10('HAVE_' + decl.underscorify().to_upper(), true)
- else
- conf.set10('HAVE_' + decl.underscorify().to_upper(), false)
- endif
-endforeach
-
-foreach ident : [
- ['bpf', '''#include <sys/syscall.h>
- #include <unistd.h>'''],
- ['close_range', '''#include <unistd.h>'''],
- ['execveat', '''#include <unistd.h>'''],
- ['endmntent', '''#include <stdio.h>
- #include <mntent.h>'''],
- ['faccessat', '''#include <fcntl.h>
- #include <unistd.h>'''],
- ['fexecve', '''#include <unistd.h>'''],
- ['fgetln', '''#include <stdio.h>'''],
- ['fsconfig', '''#include <sys/mount.h>'''],
- ['fsmount', '''#include <sys/mount.h>'''],
- ['fsopen', '''#include <sys/mount.h>'''],
- ['fspick', '''#include <sys/mount.h>'''],
- ['getgrgid_r', '''#include <sys/types.h>
- #include <grp.h>'''],
- ['getline', '''#include <stdio.h>'''],
- ['getsubopt', '''#include <stdlib.h>'''],
- ['gettid', '''#include <sys/types.h>
- #include <unistd.h>'''],
- ['hasmntopt', '''#include <stdio.h>
- #include <mntent.h>'''],
- ['kcmp', '''#include <linux/kcmp.h>'''],
- ['keyctl', '''#include <sys/types.h>
- #include <keyutils.h>'''],
- ['memfd_create', '''#include <sys/mman.h>'''],
- ['mount_setattr', '''#include <sys/mount.h>'''],
- ['move_mount', '''#include <sys/mount.h>'''],
- ['openat2', '''#include <sys/types.h>
- #include <sys/stat.h>
- #include <fctnl.h>'''],
- ['open_tree', '''#include <sys/mount.h>'''],
- ['personality', '''#include <sys/personality.h>'''],
- ['pidfd_open', '''#include <stdlib.h>
- #include <unistd.h>
- #include <signal.h>
- #include <sys/wait.h>'''],
- ['pidfd_send_signal', '''#include <stdlib.h>
- #include <unistd.h>
- #include <signal.h>
- #include <sys/wait.h>'''],
- ['pivot_root', '''#include <stdlib.h>
- #include <unistd.h>'''], # no known header declares pivot_root
- ['prlimit', '''#include <sys/time.h>
- #include <sys/resource.h>'''],
- ['prlimit64', '''#include <sys/time.h>
- #include <sys/resource.h>'''],
- ['renameat2', '''#include <stdio.h>
- #include <fcntl.h>'''],
- ['sethostname', '''#include <unistd.h>'''],
- ['setmntent', '''#include <stdio.h>
- #include <mntent.h>'''],
- ['setns', '''#include <sched.h>'''],
- ['sigdescr_np', '''#include <string.h>'''],
- ['signalfd', '''#include <sys/signalfd.h>'''],
- ['statx', '''#include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>'''],
- ['strchrnul', '''#include <string.h>'''],
- ['strlcat', '''#include <string.h>'''],
- ['strlcpy', '''#include <string.h>'''],
- ['unshare', '''#include <sched.h>'''],
-]
-
- have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
- conf.set10('HAVE_' + ident[0].to_upper(), have)
-endforeach
+add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language: 'c')
+# Feature detection
+## I/O uring.
if wants_io_uring == true
- liburing = dependency('liburing')
- if cc.has_function('io_uring_prep_poll_add', prefix : '#include <liburing.h>', dependencies: liburing) == false
- error('liburing version does not support IORING_POLL_ADD_MULTI')
- endif
- conf.set10('HAVE_LIBURING', true)
+ liburing = dependency('liburing')
+ if cc.has_function('io_uring_prep_poll_add', prefix: '#include <liburing.h>', dependencies: liburing) == false
+ error('liburing version does not support IORING_POLL_ADD_MULTI')
+ endif
+
+ conf.set10('HAVE_LIBURING', true)
endif
+## Time EPOCH.
sh = find_program('sh')
-git = find_program('git', required : false)
+git = find_program('git', required: false)
time_epoch = run_command(sh, '-c', 'echo "$SOURCE_DATE_EPOCH"').stdout().strip()
if time_epoch == '' and git.found() and run_command('test', '-e', '.git').returncode() == 0
- # If we're in a git repository, use the creation time of the latest git tag.
- latest_tag = run_command(git, 'describe', '--abbrev=0', '--tags').stdout().strip()
- time_epoch = run_command(git, 'log', '--no-show-signature', '-1', '--format=%at', latest_tag).stdout()
+ # If we're in a git repository, use the creation time of the latest git tag.
+ latest_tag = run_command(git, 'describe', '--abbrev=0', '--tags').stdout().strip()
+ time_epoch = run_command(git, 'log', '--no-show-signature', '-1', '--format=%at', latest_tag).stdout()
endif
time_epoch = time_epoch.to_int()
conf.set('TIME_EPOCH', time_epoch)
+## Threads.
threads = dependency('threads')
+
+## Seccomp.
libseccomp = dependency('libseccomp')
conf.set10('HAVE_SECCOMP', libseccomp.found())
if libseccomp.found()
- if libseccomp.version().version_compare('>=2.5.0')
- # https://github.com/seccomp/libseccomp/commit/dead12bc788b259b148cc4d93b970ef0bd602b1a
- conf.set10('HAVE_DECL_SECCOMP_NOTIFY_FD', true)
- else
- conf.set10('HAVE_DECL_SECCOMP_NOTIFY_FD', false)
- endif
-
- if libseccomp.version().version_compare('>=2.0.0')
- # https://github.com/seccomp/libseccomp/commit/6220c8c0fc479d97b6d3e3166a4e46fbfe25a3c0
- conf.set10('HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH', true)
- else
- conf.set10('HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH', false)
- endif
-
- seccomp_headers = '''
- #include <seccomp.h>
- '''
- foreach decl : [
- 'scmp_filter_ctx',
- 'struct seccomp_notif_sizes',
- 'struct clone_args',
- ]
-
- # We get -1 if the size cannot be determined
- if cc.sizeof(decl, prefix : seccomp_headers, args : '-D_GNU_SOURCE') > 0
- conf.set10('HAVE_' + decl.underscorify().to_upper(), true)
- else
- conf.set10('HAVE_' + decl.underscorify().to_upper(), false)
- endif
- endforeach
+ if libseccomp.version().version_compare('>=2.5.0')
+ # https://github.com/seccomp/libseccomp/commit/dead12bc788b259b148cc4d93b970ef0bd602b1a
+ conf.set10('HAVE_DECL_SECCOMP_NOTIFY_FD', true)
+ else
+ conf.set10('HAVE_DECL_SECCOMP_NOTIFY_FD', false)
+ endif
+
+ if libseccomp.version().version_compare('>=2.0.0')
+ # https://github.com/seccomp/libseccomp/commit/6220c8c0fc479d97b6d3e3166a4e46fbfe25a3c0
+ conf.set10('HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH', true)
+ else
+ conf.set10('HAVE_DECL_SECCOMP_SYSCALL_RESOLVE_NAME_ARCH', false)
+ endif
+
+ seccomp_headers = '''
+ #include <seccomp.h>
+ '''
+
+ foreach decl: [
+ 'scmp_filter_ctx',
+ 'struct seccomp_notif_sizes',
+ 'struct clone_args',
+ ]
+
+ # We get -1 if the size cannot be determined
+ if cc.sizeof(decl, prefix: seccomp_headers, args: '-D_GNU_SOURCE') > 0
+ conf.set10('HAVE_' + decl.underscorify().to_upper(), true)
+ else
+ conf.set10('HAVE_' + decl.underscorify().to_upper(), false)
+ endif
+ endforeach
endif
-libselinux = dependency('libselinux', required : false)
+## SELinux.
+libselinux = dependency('libselinux', required: false)
conf.set10('HAVE_SELINUX', libselinux.found())
-libapparmor = dependency('libapparmor', required : false)
+## AppArmor.
+libapparmor = dependency('libapparmor', required: false)
conf.set10('HAVE_APPARMOR', libapparmor.found())
-libopenssl = dependency('openssl', required : false)
+## OpenSSL.
+libopenssl = dependency('openssl', required: false)
conf.set10('HAVE_OPENSSL', libopenssl.found())
-libcap = dependency('libcap', required : false)
+## Libcap..
+libcap = dependency('libcap', required: false)
if not libcap.found()
- # Compat with Ubuntu 14.04 which ships libcap w/o .pc file
- libcap = cc.find_library('cap', required : false)
+ # Compat with Ubuntu 14.04 which ships libcap w/o .pc file
+ libcap = cc.find_library('cap', required: false)
endif
conf.set10('HAVE_LIBCAP', libcap.found())
-libcap_static = dependency('libcap', required : false, static : true)
+libcap_static = dependency('libcap', required: false, static: true)
if not libcap_static.found()
- # Compat with Ubuntu 14.04 which ships libcap w/o .pc file
- libcap_static = cc.find_library('cap', required : false, static : true)
+ # Compat with Ubuntu 14.04 which ships libcap w/o .pc file
+ libcap_static = cc.find_library('cap', required: false, static: true)
endif
conf.set10('HAVE_STATIC_LIBCAP', libcap_static.found())
-have = cc.has_function('strchrnul', prefix : '#include <string.h>', args : '-D_GNU_SOURCE')
+## Others.
+have = cc.has_function('strchrnul', prefix: '#include <string.h>', args: '-D_GNU_SOURCE')
conf.set10('HAVE_STRCHRNUL', have)
-have = cc.has_function('openpty', prefix : '#include <pty.h>', args : '-D_GNU_SOURCE')
+have = cc.has_function('openpty', prefix: '#include <pty.h>', args: '-D_GNU_SOURCE')
conf.set10('HAVE_OPENPTY', have)
-foreach ccattr : ['fallthrough',
- 'nonnull',
- 'returns_nonnull',
- ]
+## Compiler attributes.
+foreach ccattr: [
+ 'fallthrough',
+ 'nonnull',
+ 'returns_nonnull',
+]
- conf.set10('HAVE_COMPILER_ATTR_' + ccattr.underscorify().to_upper(), cc.has_function_attribute(ccattr))
+ conf.set10('HAVE_COMPILER_ATTR_' + ccattr.underscorify().to_upper(), cc.has_function_attribute(ccattr))
endforeach
-config_h = configure_file(
- output : 'config.h',
- configuration : conf)
-
-add_project_arguments('-include', 'config.h', language : 'c')
-
-basic_includes = include_directories(
- '.',
- 'src',
- 'src/include')
-
-liblxc_includes = [basic_includes, include_directories(
- 'src/lxc/cgroups',
- 'src/lxc/lsm',
- 'src/lxc/storage')]
-
-subdir('src/include')
-subdir('src/lxc/tools/include')
-subdir('src/lxc')
-
-liblxc_dependencies = [threads,
- libseccomp,
- libcap,
- libopenssl,
- libselinux,
- libapparmor]
-
-if wants_io_uring == true
- liblxc_dependencies += [liburing]
-endif
-
-liblxc = shared_library(
- 'lxc',
- version : liblxc_version,
- include_directories: liblxc_includes,
- link_args : ['-DPIC'],
- c_args : ['-DPIC'],
- link_whole : [liblxc_static],
- dependencies: liblxc_dependencies,
- install : true)
-
-liblxc_dep = declare_dependency(
- link_with: liblxc,
- dependencies: liblxc_dependencies)
-
-dummy_config_data = configuration_data()
-dummy_config_data.set_quoted('DUMMY_VARIABLE', '1')
-
-hook_programs = []
-subdir('hooks')
-
-template_scripts = []
-subdir('templates')
-
-test_programs = []
-subdir('src/tests')
-
-cmd_programs = []
-subdir('src/lxc/cmd')
-
-public_programs = []
-subdir('src/lxc/tools')
-
+## Syscalls.
found_syscalls = []
missing_syscalls = []
+foreach tuple: [
+ ['bpf'],
+ ['close_range'],
+ ['endmntent'],
+ ['execveat'],
+ ['faccessat'],
+ ['strchrnul'],
+ ['fgetln'],
+ ['fsconfig'],
+ ['fsmount'],
+ ['fsopen'],
+ ['fspick'],
+ ['getgrgid_r'],
+ ['getline'],
+ ['getsubopt'],
+ ['gettid'],
+ ['hasmntopt'],
+ ['kcmp'],
+ ['keyctl'],
+ ['memfd_create'],
+ ['mount_setattr'],
+ ['move_mount'],
+ ['openat2'],
+ ['open_tree'],
+ ['personality'],
+ ['pidfd_open'],
+ ['pidfd_send_signal'],
+ ['pivot_root'],
+ ['prlimit'],
+ ['prlimit64'],
+ ['renameat2'],
+ ['sethostname'],
+ ['setmntent'],
+ ['setns'],
+ ['sigdescr_np'],
+ ['signalfd'],
+ ['statx'],
+ ['strlcat'],
+ ['strlcpy'],
+ ['unshare'],
+]
+
+ if tuple.length() >= 2
+ cond = tuple[1]
+ else
+ ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
+ ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
+ cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
+ endif
+
+ if cond
+ found_syscalls += tuple[0]
+ else
+ missing_syscalls += tuple[0]
+ endif
+endforeach
+
+## Types.
+decl_headers = '''
+#include <uchar.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <linux/fs.h>
+#include <linux/types.h>
+#include <linux/openat2.h>
+#include <linux/sched.h>
+'''
-foreach tuple : [
- ['bpf'],
- ['close_range'],
- ['endmntent'],
- ['execveat'],
- ['faccessat'],
- ['strchrnul'],
- ['fgetln'],
- ['fsconfig'],
- ['fsmount'],
- ['fsopen'],
- ['fspick'],
- ['getgrgid_r'],
- ['getline'],
- ['getsubopt'],
- ['gettid'],
- ['hasmntopt'],
- ['kcmp'],
- ['keyctl'],
- ['memfd_create'],
- ['mount_setattr'],
- ['move_mount'],
- ['openat2'],
- ['open_tree'],
- ['personality'],
- ['pidfd_open'],
- ['pidfd_send_signal'],
- ['pivot_root'],
- ['prlimit'],
- ['prlimit64'],
- ['renameat2'],
- ['sethostname'],
- ['setmntent'],
- ['setns'],
- ['sigdescr_np'],
- ['signalfd'],
- ['statx'],
- ['strlcat'],
- ['strlcpy'],
- ['unshare'],
+foreach decl: [
+ '__aligned_u64',
+ 'struct mount_attr',
+ 'struct open_how',
+ 'struct clone_args',
]
- if tuple.length() >= 2
- cond = tuple[1]
- else
- ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
- ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
- cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
- endif
- if cond
- found_syscalls += tuple[0]
- else
- missing_syscalls += tuple[0]
- endif
+ # We get -1 if the size cannot be determined
+ if cc.sizeof(decl, prefix: decl_headers, args: '-D_GNU_SOURCE') > 0
+ conf.set10('HAVE_' + decl.underscorify().to_upper(), true)
+ else
+ conf.set10('HAVE_' + decl.underscorify().to_upper(), false)
+ endif
endforeach
found_types = []
missing_types = []
+foreach tuple: [
+ ['scmp_filter_ctx'],
+ ['struct seccomp_notif_sizes'],
+ ['struct clone_args'],
+ ['__aligned_u64'],
+ ['struct mount_attr'],
+ ['struct open_how'],
+]
-foreach tuple : [
- ['scmp_filter_ctx'],
- ['struct seccomp_notif_sizes'],
- ['struct clone_args'],
- ['__aligned_u64'],
- ['struct mount_attr'],
- ['struct open_how'],
+ if tuple.length() >= 2
+ cond = tuple[1]
+ else
+ ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
+ ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
+ cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
+ endif
+
+ if cond
+ found_types += tuple[0]
+ else
+ missing_types += tuple[0]
+ endif
+endforeach
+
+## Headers.
+foreach ident: [
+ ['bpf', '''#include <sys/syscall.h>
+ #include <unistd.h>'''],
+ ['close_range', '''#include <unistd.h>'''],
+ ['execveat', '''#include <unistd.h>'''],
+ ['endmntent', '''#include <stdio.h>
+ #include <mntent.h>'''],
+ ['faccessat', '''#include <fcntl.h>
+ #include <unistd.h>'''],
+ ['fexecve', '''#include <unistd.h>'''],
+ ['fgetln', '''#include <stdio.h>'''],
+ ['fsconfig', '''#include <sys/mount.h>'''],
+ ['fsmount', '''#include <sys/mount.h>'''],
+ ['fsopen', '''#include <sys/mount.h>'''],
+ ['fspick', '''#include <sys/mount.h>'''],
+ ['getgrgid_r', '''#include <sys/types.h>
+ #include <grp.h>'''],
+ ['getline', '''#include <stdio.h>'''],
+ ['getsubopt', '''#include <stdlib.h>'''],
+ ['gettid', '''#include <sys/types.h>
+ #include <unistd.h>'''],
+ ['hasmntopt', '''#include <stdio.h>
+ #include <mntent.h>'''],
+ ['kcmp', '''#include <linux/kcmp.h>'''],
+ ['keyctl', '''#include <sys/types.h>
+ #include <keyutils.h>'''],
+ ['memfd_create', '''#include <sys/mman.h>'''],
+ ['mount_setattr', '''#include <sys/mount.h>'''],
+ ['move_mount', '''#include <sys/mount.h>'''],
+ ['openat2', '''#include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fctnl.h>'''],
+ ['open_tree', '''#include <sys/mount.h>'''],
+ ['personality', '''#include <sys/personality.h>'''],
+ ['pidfd_open', '''#include <stdlib.h>
+ #include <unistd.h>
+ #include <signal.h>
+ #include <sys/wait.h>'''],
+ ['pidfd_send_signal', '''#include <stdlib.h>
+ #include <unistd.h>
+ #include <signal.h>
+ #include <sys/wait.h>'''],
+ ['pivot_root', '''#include <stdlib.h>
+ #include <unistd.h>'''], # no known header declares pivot_root
+ ['prlimit', '''#include <sys/time.h>
+ #include <sys/resource.h>'''],
+ ['prlimit64', '''#include <sys/time.h>
+ #include <sys/resource.h>'''],
+ ['renameat2', '''#include <stdio.h>
+ #include <fcntl.h>'''],
+ ['sethostname', '''#include <unistd.h>'''],
+ ['setmntent', '''#include <stdio.h>
+ #include <mntent.h>'''],
+ ['setns', '''#include <sched.h>'''],
+ ['sigdescr_np', '''#include <string.h>'''],
+ ['signalfd', '''#include <sys/signalfd.h>'''],
+ ['statx', '''#include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>'''],
+ ['strchrnul', '''#include <string.h>'''],
+ ['strlcat', '''#include <string.h>'''],
+ ['strlcpy', '''#include <string.h>'''],
+ ['unshare', '''#include <sched.h>'''],
]
- if tuple.length() >= 2
- cond = tuple[1]
- else
- ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
- ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
- cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
- endif
- if cond
- found_types += tuple[0]
- else
- missing_types += tuple[0]
- endif
+ have = cc.has_function(ident[0], prefix: ident[1], args: '-D_GNU_SOURCE')
+ conf.set10('HAVE_' + ident[0].to_upper(), have)
endforeach
found_headers = []
missing_headers = []
-
-foreach tuple : [
- ['sys/resource.h'],
- ['sys/memfd.h'],
- ['sys/personality.h'],
- ['sys/signalfd.h'],
- ['sys/timerfd.h'],
- ['pty.h'],
- ['utmpx.h' ],
+foreach tuple: [
+ ['sys/resource.h'],
+ ['sys/memfd.h'],
+ ['sys/personality.h'],
+ ['sys/signalfd.h'],
+ ['sys/timerfd.h'],
+ ['pty.h'],
+ ['utmpx.h'],
]
-
- if tuple.length() >= 2
- cond = tuple[1]
- else
- ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
- ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
- cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
- endif
- if cond
- found_headers += tuple[0]
- else
- missing_headers += tuple[0]
- endif
+ conf.set10('HAVE_' + tuple[0].underscorify().to_upper(), cc.has_header(tuple[0]))
+
+ if tuple.length() >= 2
+ cond = tuple[1]
+ else
+ ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
+ ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
+ cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
+ endif
+
+ if cond
+ found_headers += tuple[0]
+ else
+ missing_headers += tuple[0]
+ endif
endforeach
+## Deps.
found_deps = []
missing_deps = []
-
-foreach tuple : [
- ['AppArmor'],
- ['SECCOMP'],
- ['SELinux'],
- ['libcap'],
- ['static libcap'],
- ['openssl'],
- ['liburing'],
+foreach tuple: [
+ ['AppArmor'],
+ ['SECCOMP'],
+ ['SELinux'],
+ ['libcap'],
+ ['static libcap'],
+ ['openssl'],
+ ['liburing'],
]
- if tuple.length() >= 2
- cond = tuple[1]
- else
- ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
- ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
- cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
- endif
- if cond
- found_deps += tuple[0]
- else
- missing_deps += tuple[0]
- endif
+ if tuple.length() >= 2
+ cond = tuple[1]
+ else
+ ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
+ ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
+ cond = conf.get(ident1, 0) == 1 or conf.get(ident2, 0) == 1
+ endif
+
+ if cond
+ found_deps += tuple[0]
+ else
+ missing_deps += tuple[0]
+ endif
endforeach
+# Generate config.h
+config_h = configure_file(
+ output: 'config.h',
+ configuration: conf)
+
+add_project_arguments('-include', 'config.h', language: 'c')
+
+# Binaries.
+cmd_programs = []
+hook_programs = []
+public_programs = []
+template_scripts = []
+test_programs = []
+
+# Includes.
+basic_includes = include_directories(
+ '.',
+ 'src',
+ 'src/include')
+
+liblxc_includes = [basic_includes, include_directories(
+ 'src/lxc/cgroups',
+ 'src/lxc/lsm',
+ 'src/lxc/storage')]
+
+# Early sub-directories.
+subdir('src/include')
+subdir('src/lxc')
+
+# Library.
+liblxc_dependencies = [
+ threads,
+ libseccomp,
+ libcap,
+ libopenssl,
+ libselinux,
+ libapparmor,
+]
+
+if wants_io_uring == true
+ liblxc_dependencies += [liburing]
+endif
+
+liblxc = shared_library(
+ 'lxc',
+ version: liblxc_version,
+ include_directories: liblxc_includes,
+ link_args: ['-DPIC'],
+ c_args: ['-DPIC'],
+ link_whole: [liblxc_static],
+ dependencies: liblxc_dependencies,
+ install: true)
+
+liblxc_dep = declare_dependency(
+ link_with: liblxc,
+ dependencies: liblxc_dependencies)
+
+# Rest of sub-directories.
+subdir('hooks')
+subdir('src/lxc/cmd')
+subdir('src/lxc/tools')
+subdir('src/lxc/tools/include')
+subdir('src/tests')
+subdir('templates')
+
+# Build overview.
status = [
- '@0@ @1@'.format(meson.project_name(), meson.project_version()),
-
- 'Meson version: @0@'.format(meson.version()),
-
- 'prefix directory: @0@'.format(prefixdir),
- 'bin directory: @0@'.format(bindir),
- 'data directory: @0@'.format(datadir),
- 'doc directory: @0@'.format(docdir),
- 'include directory: @0@'.format(includedir),
- 'lib directory: @0@'.format(libdir),
- 'libexec directory: @0@'.format(libexecdir),
- 'local state directory: @0@'.format(localstatedir),
- 'sbin directory: @0@'.format(sbindir),
- 'sysconf directory: @0@'.format(sysconfdir),
-
- 'lxc cgroup pattern: @0@'.format(cgrouppattern),
- 'lxc init directory: @0@'.format(libexecdir),
- 'runtime path: @0@'.format(runtimepath),
-
- 'lxc default config: @0@'.format(lxcdefaultconfig),
- 'lxc global config: @0@'.format(lxcglobalconfig),
- 'lxc hook directory: @0@'.format(lxchookdir),
- 'lxc hook bin directory: @0@'.format(lxchookbindir),
- 'lxc rootfs mount directory: @0@'.format(lxcrootfsmount),
- 'log path: @0@'.format(lxclogpath),
- 'lxc path: @0@'.format(lxcpath),
- 'lxc template config: @0@'.format(lxctemplateconfig),
- 'lxc template directory: @0@'.format(lxctemplatedir),
- 'lxc user network config: @0@'.format(lxc_user_network_conf),
- 'lxc user network database: @0@'.format(lxc_user_network_db)]
+ '@0@ @1@'.format(meson.project_name(), meson.project_version()),
+
+ 'Meson version: @0@'.format(meson.version()),
+
+ 'prefix directory: @0@'.format(prefixdir),
+ 'bin directory: @0@'.format(bindir),
+ 'data directory: @0@'.format(datadir),
+ 'doc directory: @0@'.format(docdir),
+ 'include directory: @0@'.format(includedir),
+ 'lib directory: @0@'.format(libdir),
+ 'libexec directory: @0@'.format(libexecdir),
+ 'local state directory: @0@'.format(localstatedir),
+ 'sbin directory: @0@'.format(sbindir),
+ 'sysconf directory: @0@'.format(sysconfdir),
+
+ 'lxc cgroup pattern: @0@'.format(cgrouppattern),
+ 'lxc init directory: @0@'.format(libexecdir),
+ 'runtime path: @0@'.format(runtimepath),
+
+ 'lxc default config: @0@'.format(lxcdefaultconfig),
+ 'lxc global config: @0@'.format(lxcglobalconfig),
+ 'lxc hook directory: @0@'.format(lxchookdir),
+ 'lxc hook bin directory: @0@'.format(lxchookbindir),
+ 'lxc rootfs mount directory: @0@'.format(lxcrootfsmount),
+ 'log path: @0@'.format(lxclogpath),
+ 'lxc path: @0@'.format(lxcpath),
+ 'lxc template config: @0@'.format(lxctemplateconfig),
+ 'lxc template directory: @0@'.format(lxctemplatedir),
+ 'lxc user network config: @0@'.format(lxc_user_network_conf),
+ 'lxc user network database: @0@'.format(lxc_user_network_db)]
alt_time_epoch = run_command('date', '-Is', '-u', '-d',
'@@0@'.format(time_epoch)).stdout().strip()
status += [
- 'time epoch: @0@ (@1@)'.format(time_epoch, alt_time_epoch)]
+ 'time epoch: @0@ (@1@)'.format(time_epoch, alt_time_epoch)]
status += [
- '',
- 'supported dependencies: @0@'.format(', '.join(found_deps)),
- '',
- 'unsupported dependencies: @0@'.format(', '.join(missing_deps)),
- '']
+ '',
+ 'supported dependencies: @0@'.format(', '.join(found_deps)),
+ '',
+ 'unsupported dependencies: @0@'.format(', '.join(missing_deps)),
+ '']
status += [
- '',
- 'supported headers: @0@'.format(', '.join(found_headers)),
- '',
- 'unsupported headers: @0@'.format(', '.join(missing_headers)),
- '']
+ '',
+ 'supported headers: @0@'.format(', '.join(found_headers)),
+ '',
+ 'unsupported headers: @0@'.format(', '.join(missing_headers)),
+ '']
status += [
- '',
- 'supported calls: @0@'.format(', '.join(found_syscalls)),
- '',
- 'unsupported calls: @0@'.format(', '.join(missing_syscalls)),
- '']
+ '',
+ 'supported calls: @0@'.format(', '.join(found_syscalls)),
+ '',
+ 'unsupported calls: @0@'.format(', '.join(missing_syscalls)),
+ '']
status += [
- '',
- 'supported types: @0@'.format(', '.join(found_types)),
- '',
- 'unsupported types: @0@'.format(', '.join(missing_types)),
- '']
+ '',
+ 'supported types: @0@'.format(', '.join(found_types)),
+ '',
+ 'unsupported types: @0@'.format(', '.join(missing_types)),
+ '']
-message('\n '.join(status))
+message('\n '.join(status))
# SPDX-License-Identifier: LGPL-2.1-or-later
include_sources = files(
- 'bpf.h',
- 'bpf_common.h')
+ 'bpf.h',
+ 'bpf_common.h')
netns_ifaddrs_sources = files(
- 'netns_ifaddrs.c',
- 'netns_ifaddrs.h')
+ 'netns_ifaddrs.c',
+ 'netns_ifaddrs.h')
if conf.get('HAVE_GETLINE') == 0
- include_sources += files(
- 'getline.c',
- 'getline.h')
+ include_sources += files(
+ 'getline.c',
+ 'getline.h')
endif
if conf.get('HAVE_FEXECVE') == 0
- include_sources += files(
- 'fexecve.c',
- 'fexecve.h')
+ include_sources += files(
+ 'fexecve.c',
+ 'fexecve.h')
endif
if conf.get('HAVE_GETGRGID_R') == 0
- include_sources += files(
- 'getgrgid_r.c',
- 'getgrgid_r.h')
+ include_sources += files(
+ 'getgrgid_r.c',
+ 'getgrgid_r.h')
endif
if conf.get('HAVE_HASMNTOPT') == 0 or conf.get('HAVE_SETMNTENT') == 0 or conf.get('HAVE_ENDMNTENT') == 0
- include_sources += files(
- 'lxcmntent.c',
- 'lxcmntent.h')
+ include_sources += files(
+ 'lxcmntent.c',
+ 'lxcmntent.h')
endif
if conf.get('HAVE_STRLCPY') == 0
- include_sources += files(
- 'strlcpy.c',
- 'strlcpy.h')
+ include_sources += files(
+ 'strlcpy.c',
+ 'strlcpy.h')
endif
if conf.get('HAVE_STRLCAT') == 0
- include_sources += files(
- 'strlcat.c',
- 'strlcat.h')
+ include_sources += files(
+ 'strlcat.c',
+ 'strlcat.h')
endif
if conf.get('HAVE_STRCHRNUL') == 0
- include_sources += files(
- 'strchrnul.c',
- 'strchrnul.h')
+ include_sources += files(
+ 'strchrnul.c',
+ 'strchrnul.h')
endif
if conf.get('HAVE_OPENPTY') == 0
- include_sources += files(
- 'openpty.c',
- 'openpty.h')
+ include_sources += files(
+ 'openpty.c',
+ 'openpty.h')
endif
# SPDX-License-Identifier: LGPL-2.1-or-later
cmd_liblxc_includes = include_directories(
- '.',
- '../',
- '../cgroups',
- '../lsm',
- '../storage',
- '../../include',
- '../../../')
+ '.',
+ '../',
+ '../cgroups',
+ '../lsm',
+ '../storage',
+ '../../include',
+ '../../../')
cmd_common_sources = files(
- '../af_unix.c',
- '../af_unix.h',
- '../attach_options.h',
- '../caps.c',
- '../caps.h',
- '../commands.c',
- '../commands.h',
- '../commands_utils.c',
- '../commands_utils.h',
- '../compiler.h',
- '../conf.c',
- '../conf.h',
- '../confile.c',
- '../confile.h',
- '../confile_utils.c',
- '../confile_utils.h',
- '../cgroups/cgfsng.c',
- '../cgroups/cgroup.c',
- '../cgroups/cgroup.h',
- '../cgroups/cgroup2_devices.c',
- '../cgroups/cgroup2_devices.h',
- '../cgroups/cgroup_utils.c',
- '../cgroups/cgroup_utils.h',
- '../error.c',
- '../error.h',
- '../initutils.c',
- '../initutils.h',
- '../file_utils.c',
- '../file_utils.h',
- '../lsm/apparmor.c',
- '../lsm/lsm.c',
- '../lsm/lsm.h',
- '../lsm/nop.c',
- '../lsm/selinux.c',
- '../lxcseccomp.h',
- '../lxclock.c',
- '../lxclock.h',
- '../macro.h',
- '../mainloop.c',
- '../mainloop.h',
- '../memory_utils.h',
- '../monitor.c',
- '../monitor.h',
- '../mount_utils.c',
- '../mount_utils.h',
- '../namespace.c',
- '../namespace.h',
- '../network.c',
- '../network.h',
- '../nl.c',
- '../nl.h',
- '../parse.c',
- '../parse.h',
- '../process_utils.c',
- '../process_utils.h',
- '../ringbuf.c',
- '../ringbuf.h',
- '../seccomp.c',
- '../start.c',
- '../start.h',
- '../state.c',
- '../state.h',
- '../storage/btrfs.c',
- '../storage/btrfs.h',
- '../storage/dir.c',
- '../storage/dir.h',
- '../storage/loop.c',
- '../storage/loop.h',
- '../storage/lvm.c',
- '../storage/lvm.h',
- '../storage/nbd.c',
- '../storage/nbd.h',
- '../storage/overlay.c',
- '../storage/overlay.h',
- '../storage/rbd.c',
- '../storage/rbd.h',
- '../storage/rsync.c',
- '../storage/rsync.h',
- '../storage/storage.c',
- '../storage/storage.h',
- '../storage/storage_utils.c',
- '../storage/storage_utils.h',
- '../storage/zfs.c',
- '../storage/zfs.h',
- '../string_utils.c',
- '../string_utils.h',
- '../sync.c',
- '../sync.h',
- '../terminal.c',
- '../terminal.h',
- '../utils.c',
- '../utils.h',
- '../uuid.c',
- '../uuid.h',
- '../log.h',
- '../log.c') + include_sources
+ '../af_unix.c',
+ '../af_unix.h',
+ '../attach_options.h',
+ '../caps.c',
+ '../caps.h',
+ '../commands.c',
+ '../commands.h',
+ '../commands_utils.c',
+ '../commands_utils.h',
+ '../compiler.h',
+ '../conf.c',
+ '../conf.h',
+ '../confile.c',
+ '../confile.h',
+ '../confile_utils.c',
+ '../confile_utils.h',
+ '../cgroups/cgfsng.c',
+ '../cgroups/cgroup.c',
+ '../cgroups/cgroup.h',
+ '../cgroups/cgroup2_devices.c',
+ '../cgroups/cgroup2_devices.h',
+ '../cgroups/cgroup_utils.c',
+ '../cgroups/cgroup_utils.h',
+ '../error.c',
+ '../error.h',
+ '../initutils.c',
+ '../initutils.h',
+ '../file_utils.c',
+ '../file_utils.h',
+ '../lsm/apparmor.c',
+ '../lsm/lsm.c',
+ '../lsm/lsm.h',
+ '../lsm/nop.c',
+ '../lsm/selinux.c',
+ '../lxcseccomp.h',
+ '../lxclock.c',
+ '../lxclock.h',
+ '../macro.h',
+ '../mainloop.c',
+ '../mainloop.h',
+ '../memory_utils.h',
+ '../monitor.c',
+ '../monitor.h',
+ '../mount_utils.c',
+ '../mount_utils.h',
+ '../namespace.c',
+ '../namespace.h',
+ '../network.c',
+ '../network.h',
+ '../nl.c',
+ '../nl.h',
+ '../parse.c',
+ '../parse.h',
+ '../process_utils.c',
+ '../process_utils.h',
+ '../ringbuf.c',
+ '../ringbuf.h',
+ '../seccomp.c',
+ '../start.c',
+ '../start.h',
+ '../state.c',
+ '../state.h',
+ '../storage/btrfs.c',
+ '../storage/btrfs.h',
+ '../storage/dir.c',
+ '../storage/dir.h',
+ '../storage/loop.c',
+ '../storage/loop.h',
+ '../storage/lvm.c',
+ '../storage/lvm.h',
+ '../storage/nbd.c',
+ '../storage/nbd.h',
+ '../storage/overlay.c',
+ '../storage/overlay.h',
+ '../storage/rbd.c',
+ '../storage/rbd.h',
+ '../storage/rsync.c',
+ '../storage/rsync.h',
+ '../storage/storage.c',
+ '../storage/storage.h',
+ '../storage/storage_utils.c',
+ '../storage/storage_utils.h',
+ '../storage/zfs.c',
+ '../storage/zfs.h',
+ '../string_utils.c',
+ '../string_utils.h',
+ '../sync.c',
+ '../sync.h',
+ '../terminal.c',
+ '../terminal.h',
+ '../utils.c',
+ '../utils.h',
+ '../uuid.c',
+ '../uuid.h',
+ '../log.h',
+ '../log.c') + include_sources
cmd_lxc_init_sources = files(
- 'lxc_init.c',
- '../af_unix.c',
- '../af_unix.h',
- '../caps.c',
- '../caps.h',
- '../error.c',
- '../error.h',
- '../file_utils.c',
- '../file_utils.h',
- '../initutils.c',
- '../initutils.h',
- '../log.h',
- '../log.c',
- '../macro.h',
- '../memory_utils.h',
- '../namespace.c',
- '../namespace.h',
- '../string_utils.c',
- '../string_utils.h') + include_sources
+ 'lxc_init.c',
+ '../af_unix.c',
+ '../af_unix.h',
+ '../caps.c',
+ '../caps.h',
+ '../error.c',
+ '../error.h',
+ '../file_utils.c',
+ '../file_utils.h',
+ '../initutils.c',
+ '../initutils.h',
+ '../log.h',
+ '../log.c',
+ '../macro.h',
+ '../memory_utils.h',
+ '../namespace.c',
+ '../namespace.h',
+ '../string_utils.c',
+ '../string_utils.h') + include_sources
cmd_lxc_init_static_sources = files(
- 'lxc_init.c',
- '../af_unix.c',
- '../af_unix.h',
- '../caps.c',
- '../caps.h',
- '../error.c',
- '../error.h',
- '../file_utils.c',
- '../file_utils.h',
- '../initutils.c',
- '../initutils.h',
- '../log.h',
- '../log.c',
- '../macro.h',
- '../memory_utils.h',
- '../namespace.c',
- '../namespace.h',
- '../string_utils.c',
- '../string_utils.h') + include_sources
+ 'lxc_init.c',
+ '../af_unix.c',
+ '../af_unix.h',
+ '../caps.c',
+ '../caps.h',
+ '../error.c',
+ '../error.h',
+ '../file_utils.c',
+ '../file_utils.h',
+ '../initutils.c',
+ '../initutils.h',
+ '../log.h',
+ '../log.c',
+ '../macro.h',
+ '../memory_utils.h',
+ '../namespace.c',
+ '../namespace.h',
+ '../string_utils.c',
+ '../string_utils.h') + include_sources
cmd_lxc_monitord_sources = files('lxc_monitord.c') + cmd_common_sources + netns_ifaddrs_sources
cmd_lxc_user_nic_sources = files('lxc_user_nic.c') + cmd_common_sources + netns_ifaddrs_sources
cmd_lxc_usernsexec_sources = files('lxc_usernsexec.c') + cmd_common_sources + netns_ifaddrs_sources
cmd_lxc_checkconfig = configure_file(
- configuration : dummy_config_data,
- input : 'lxc-checkconfig.in',
- output : 'lxc-checkconfig')
-install_data(join_paths(project_build_root, 'src/lxc/cmd/lxc-checkconfig'), install_dir : bindir)
+ configuration: dummy_config_data,
+ input: 'lxc-checkconfig.in',
+ output: 'lxc-checkconfig')
+install_data(join_paths(project_build_root, 'src/lxc/cmd/lxc-checkconfig'), install_dir: bindir)
cmd_lxc_update_config_data = configuration_data()
cmd_lxc_update_config = configure_file(
- configuration : dummy_config_data,
- input : 'lxc-update-config.in',
- output : 'lxc-update-config')
-install_data(join_paths(project_build_root, 'src/lxc/cmd/lxc-update-config'), install_dir : bindir)
+ configuration: dummy_config_data,
+ input: 'lxc-update-config.in',
+ output: 'lxc-update-config')
+install_data(join_paths(project_build_root, 'src/lxc/cmd/lxc-update-config'), install_dir: bindir)
cmd_lxc_update_config_data = configuration_data()
cmd_programs += executable(
- 'init.lxc.static',
- cmd_lxc_init_sources,
- include_directories: cmd_liblxc_includes,
- link_with : [liblxc_static],
- link_args : ['-static'],
- c_args : ['-DNO_LXC_CONF'],
- dependencies : [libcap_static],
- install : true)
+ 'init.lxc.static',
+ cmd_lxc_init_sources,
+ include_directories: cmd_liblxc_includes,
+ link_with: [liblxc_static],
+ link_args: ['-static'],
+ c_args: ['-DNO_LXC_CONF'],
+ dependencies: [libcap_static],
+ install: true)
cmd_programs += executable(
- 'lxc-init',
- cmd_lxc_init_sources,
- include_directories: cmd_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-init',
+ cmd_lxc_init_sources,
+ include_directories: cmd_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
cmd_programs += executable(
- 'lxc-monitord',
- cmd_lxc_monitord_sources,
- include_directories: cmd_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-monitord',
+ cmd_lxc_monitord_sources,
+ include_directories: cmd_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
cmd_programs += executable(
- 'lxc-user-nic',
- cmd_lxc_user_nic_sources,
- include_directories: cmd_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-user-nic',
+ cmd_lxc_user_nic_sources,
+ include_directories: cmd_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
cmd_programs += executable(
- 'lxc-usernsexec',
- cmd_lxc_usernsexec_sources,
- include_directories: cmd_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-usernsexec',
+ cmd_lxc_usernsexec_sources,
+ include_directories: cmd_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
# SPDX-License-Identifier: LGPL-2.1-or-later
liblxcfs_version_file = configure_file(
- configuration : version_data,
- input : 'version.h.in',
- output : 'version.h')
+ configuration: version_data,
+ input: 'version.h.in',
+ output: 'version.h')
liblxc_sources = files(
- 'cgroups/cgfsng.c',
- 'cgroups/cgroup.c',
- 'cgroups/cgroup.h',
- 'cgroups/cgroup2_devices.c',
- 'cgroups/cgroup2_devices.h',
- 'cgroups/cgroup_utils.c',
- 'cgroups/cgroup_utils.h',
- 'lsm/apparmor.c',
- 'lsm/lsm.c',
- 'lsm/lsm.h',
- 'lsm/nop.c',
- 'lsm/selinux.c',
- 'storage/btrfs.c',
- 'storage/btrfs.h',
- 'storage/dir.c',
- 'storage/dir.h',
- 'storage/loop.c',
- 'storage/loop.h',
- 'storage/lvm.c',
- 'storage/lvm.h',
- 'storage/nbd.c',
- 'storage/nbd.h',
- 'storage/overlay.c',
- 'storage/overlay.h',
- 'storage/rbd.c',
- 'storage/rbd.h',
- 'storage/rsync.c',
- 'storage/rsync.h',
- 'storage/storage.c',
- 'storage/storage.h',
- 'storage/storage_utils.c',
- 'storage/storage_utils.h',
- 'storage/zfs.c',
- 'storage/zfs.h',
- 'af_unix.c',
- 'af_unix.h',
- 'api_extensions.h',
- 'attach.c',
- 'attach.h',
- 'attach_options.h',
- 'caps.c',
- 'caps.h',
- 'commands.c',
- 'commands.h',
- 'commands_utils.c',
- 'commands_utils.h',
- 'compiler.h',
- 'conf.c',
- 'conf.h',
- 'confile.c',
- 'confile.h',
- 'confile_utils.c',
- 'confile_utils.h',
- 'criu.c',
- 'criu.h',
- 'error.c',
- 'error.h',
- 'error_utils.h',
- 'execute.c',
- 'file_utils.c',
- 'file_utils.h',
- 'freezer.c',
- 'hlist.h',
- 'initutils.c',
- 'initutils.h',
- 'list.h',
- 'log.c',
- 'log.h',
- 'lxc.h',
- 'lxccontainer.c',
- 'lxccontainer.h',
- 'lxclock.c',
- 'lxclock.h',
- 'lxcseccomp.h',
- 'macro.h',
- 'mainloop.c',
- 'mainloop.h',
- 'memory_utils.h',
- 'monitor.c',
- 'monitor.h',
- 'mount_utils.c',
- 'mount_utils.h',
- 'namespace.c',
- 'namespace.h',
- 'network.c',
- 'network.h',
- 'nl.c',
- 'nl.h',
- 'parse.c',
- 'parse.h',
- 'process_utils.c',
- 'process_utils.h',
- 'rexec.c',
- 'rexec.h',
- 'ringbuf.c',
- 'ringbuf.h',
- 'rtnl.c',
- 'rtnl.h',
- 'seccomp.c',
- 'start.c',
- 'start.h',
- 'state.c',
- 'state.h',
- 'string_utils.c',
- 'string_utils.h',
- 'sync.c',
- 'sync.h',
- 'syscall_numbers.h',
- 'syscall_wrappers.h',
- 'terminal.c',
- 'terminal.h',
- 'utils.c',
- 'utils.h',
- 'uuid.c',
- 'uuid.h')
+ 'cgroups/cgfsng.c',
+ 'cgroups/cgroup.c',
+ 'cgroups/cgroup.h',
+ 'cgroups/cgroup2_devices.c',
+ 'cgroups/cgroup2_devices.h',
+ 'cgroups/cgroup_utils.c',
+ 'cgroups/cgroup_utils.h',
+ 'lsm/apparmor.c',
+ 'lsm/lsm.c',
+ 'lsm/lsm.h',
+ 'lsm/nop.c',
+ 'lsm/selinux.c',
+ 'storage/btrfs.c',
+ 'storage/btrfs.h',
+ 'storage/dir.c',
+ 'storage/dir.h',
+ 'storage/loop.c',
+ 'storage/loop.h',
+ 'storage/lvm.c',
+ 'storage/lvm.h',
+ 'storage/nbd.c',
+ 'storage/nbd.h',
+ 'storage/overlay.c',
+ 'storage/overlay.h',
+ 'storage/rbd.c',
+ 'storage/rbd.h',
+ 'storage/rsync.c',
+ 'storage/rsync.h',
+ 'storage/storage.c',
+ 'storage/storage.h',
+ 'storage/storage_utils.c',
+ 'storage/storage_utils.h',
+ 'storage/zfs.c',
+ 'storage/zfs.h',
+ 'af_unix.c',
+ 'af_unix.h',
+ 'api_extensions.h',
+ 'attach.c',
+ 'attach.h',
+ 'attach_options.h',
+ 'caps.c',
+ 'caps.h',
+ 'commands.c',
+ 'commands.h',
+ 'commands_utils.c',
+ 'commands_utils.h',
+ 'compiler.h',
+ 'conf.c',
+ 'conf.h',
+ 'confile.c',
+ 'confile.h',
+ 'confile_utils.c',
+ 'confile_utils.h',
+ 'criu.c',
+ 'criu.h',
+ 'error.c',
+ 'error.h',
+ 'error_utils.h',
+ 'execute.c',
+ 'file_utils.c',
+ 'file_utils.h',
+ 'freezer.c',
+ 'hlist.h',
+ 'initutils.c',
+ 'initutils.h',
+ 'list.h',
+ 'log.c',
+ 'log.h',
+ 'lxc.h',
+ 'lxccontainer.c',
+ 'lxccontainer.h',
+ 'lxclock.c',
+ 'lxclock.h',
+ 'lxcseccomp.h',
+ 'macro.h',
+ 'mainloop.c',
+ 'mainloop.h',
+ 'memory_utils.h',
+ 'monitor.c',
+ 'monitor.h',
+ 'mount_utils.c',
+ 'mount_utils.h',
+ 'namespace.c',
+ 'namespace.h',
+ 'network.c',
+ 'network.h',
+ 'nl.c',
+ 'nl.h',
+ 'parse.c',
+ 'parse.h',
+ 'process_utils.c',
+ 'process_utils.h',
+ 'rexec.c',
+ 'rexec.h',
+ 'ringbuf.c',
+ 'ringbuf.h',
+ 'rtnl.c',
+ 'rtnl.h',
+ 'seccomp.c',
+ 'start.c',
+ 'start.h',
+ 'state.c',
+ 'state.h',
+ 'string_utils.c',
+ 'string_utils.h',
+ 'sync.c',
+ 'sync.h',
+ 'syscall_numbers.h',
+ 'syscall_wrappers.h',
+ 'terminal.c',
+ 'terminal.h',
+ 'utils.c',
+ 'utils.h',
+ 'uuid.c',
+ 'uuid.h')
liblxc_static = static_library(
- 'lxc_static',
- liblxc_sources + include_sources + netns_ifaddrs_sources,
- install : false,
- include_directories : liblxc_includes,
- dependencies : [threads],
- c_args : '-fvisibility=default')
+ 'lxc_static',
+ liblxc_sources + include_sources + netns_ifaddrs_sources,
+ install: false,
+ include_directories: liblxc_includes,
+ dependencies: [threads],
+ c_args: '-fvisibility=default')
# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('HAVE_GETSUBOPT') == 0
- include_sources += files(
- 'getsubopt.c',
- 'getsubopt.h')
+ include_sources += files(
+ 'getsubopt.c',
+ 'getsubopt.h')
endif
# SPDX-License-Identifier: LGPL-2.1-or-later
tools_liblxc_includes = include_directories(
- '.',
- '../',
- '../cgroups',
- '../lsm',
- '../storage',
- '../../include',
- '../../../')
+ '.',
+ '../',
+ '../cgroups',
+ '../lsm',
+ '../storage',
+ '../../include',
+ '../../../')
tools_common_sources = files(
- 'arguments.c',
- 'arguments.h',
- '../af_unix.c',
- '../af_unix.h',
- '../attach_options.h',
- '../caps.c',
- '../caps.h',
- '../commands.c',
- '../commands.h',
- '../commands_utils.c',
- '../commands_utils.h',
- '../compiler.h',
- '../conf.c',
- '../conf.h',
- '../confile.c',
- '../confile.h',
- '../confile_utils.c',
- '../confile_utils.h',
- '../cgroups/cgfsng.c',
- '../cgroups/cgroup.c',
- '../cgroups/cgroup.h',
- '../cgroups/cgroup2_devices.c',
- '../cgroups/cgroup2_devices.h',
- '../cgroups/cgroup_utils.c',
- '../cgroups/cgroup_utils.h',
- '../error.c',
- '../error.h',
- '../initutils.c',
- '../initutils.h',
- '../file_utils.c',
- '../file_utils.h',
- '../lsm/apparmor.c',
- '../lsm/lsm.c',
- '../lsm/lsm.h',
- '../lsm/nop.c',
- '../lsm/selinux.c',
- '../lxcseccomp.h',
- '../lxclock.c',
- '../lxclock.h',
- '../macro.h',
- '../mainloop.c',
- '../mainloop.h',
- '../memory_utils.h',
- '../monitor.c',
- '../monitor.h',
- '../mount_utils.c',
- '../mount_utils.h',
- '../namespace.c',
- '../namespace.h',
- '../network.c',
- '../network.h',
- '../nl.c',
- '../nl.h',
- '../parse.c',
- '../parse.h',
- '../process_utils.c',
- '../process_utils.h',
- '../ringbuf.c',
- '../ringbuf.h',
- '../seccomp.c',
- '../start.c',
- '../start.h',
- '../state.c',
- '../state.h',
- '../storage/btrfs.c',
- '../storage/btrfs.h',
- '../storage/dir.c',
- '../storage/dir.h',
- '../storage/loop.c',
- '../storage/loop.h',
- '../storage/lvm.c',
- '../storage/lvm.h',
- '../storage/nbd.c',
- '../storage/nbd.h',
- '../storage/overlay.c',
- '../storage/overlay.h',
- '../storage/rbd.c',
- '../storage/rbd.h',
- '../storage/rsync.c',
- '../storage/rsync.h',
- '../storage/storage.c',
- '../storage/storage.h',
- '../storage/storage_utils.c',
- '../storage/storage_utils.h',
- '../storage/zfs.c',
- '../storage/zfs.h',
- '../string_utils.c',
- '../string_utils.h',
- '../sync.c',
- '../sync.h',
- '../terminal.c',
- '../terminal.h',
- '../utils.c',
- '../utils.h',
- '../uuid.c',
- '../uuid.h',
- '../log.h',
- '../log.c') + include_sources + netns_ifaddrs_sources
+ 'arguments.c',
+ 'arguments.h',
+ '../af_unix.c',
+ '../af_unix.h',
+ '../attach_options.h',
+ '../caps.c',
+ '../caps.h',
+ '../commands.c',
+ '../commands.h',
+ '../commands_utils.c',
+ '../commands_utils.h',
+ '../compiler.h',
+ '../conf.c',
+ '../conf.h',
+ '../confile.c',
+ '../confile.h',
+ '../confile_utils.c',
+ '../confile_utils.h',
+ '../cgroups/cgfsng.c',
+ '../cgroups/cgroup.c',
+ '../cgroups/cgroup.h',
+ '../cgroups/cgroup2_devices.c',
+ '../cgroups/cgroup2_devices.h',
+ '../cgroups/cgroup_utils.c',
+ '../cgroups/cgroup_utils.h',
+ '../error.c',
+ '../error.h',
+ '../initutils.c',
+ '../initutils.h',
+ '../file_utils.c',
+ '../file_utils.h',
+ '../lsm/apparmor.c',
+ '../lsm/lsm.c',
+ '../lsm/lsm.h',
+ '../lsm/nop.c',
+ '../lsm/selinux.c',
+ '../lxcseccomp.h',
+ '../lxclock.c',
+ '../lxclock.h',
+ '../macro.h',
+ '../mainloop.c',
+ '../mainloop.h',
+ '../memory_utils.h',
+ '../monitor.c',
+ '../monitor.h',
+ '../mount_utils.c',
+ '../mount_utils.h',
+ '../namespace.c',
+ '../namespace.h',
+ '../network.c',
+ '../network.h',
+ '../nl.c',
+ '../nl.h',
+ '../parse.c',
+ '../parse.h',
+ '../process_utils.c',
+ '../process_utils.h',
+ '../ringbuf.c',
+ '../ringbuf.h',
+ '../seccomp.c',
+ '../start.c',
+ '../start.h',
+ '../state.c',
+ '../state.h',
+ '../storage/btrfs.c',
+ '../storage/btrfs.h',
+ '../storage/dir.c',
+ '../storage/dir.h',
+ '../storage/loop.c',
+ '../storage/loop.h',
+ '../storage/lvm.c',
+ '../storage/lvm.h',
+ '../storage/nbd.c',
+ '../storage/nbd.h',
+ '../storage/overlay.c',
+ '../storage/overlay.h',
+ '../storage/rbd.c',
+ '../storage/rbd.h',
+ '../storage/rsync.c',
+ '../storage/rsync.h',
+ '../storage/storage.c',
+ '../storage/storage.h',
+ '../storage/storage_utils.c',
+ '../storage/storage_utils.h',
+ '../storage/zfs.c',
+ '../storage/zfs.h',
+ '../string_utils.c',
+ '../string_utils.h',
+ '../sync.c',
+ '../sync.h',
+ '../terminal.c',
+ '../terminal.h',
+ '../utils.c',
+ '../utils.h',
+ '../uuid.c',
+ '../uuid.h',
+ '../log.h',
+ '../log.c') + include_sources + netns_ifaddrs_sources
tools_lxc_autostart_sources = files(
- 'lxc_autostart.c') + tools_common_sources
+ 'lxc_autostart.c') + tools_common_sources
tools_lxc_cgroup_sources = files(
- 'lxc_cgroup.c') + tools_common_sources
+ 'lxc_cgroup.c') + tools_common_sources
tools_lxc_checkpoint_sources = files(
- 'lxc_checkpoint.c') + tools_common_sources
+ 'lxc_checkpoint.c') + tools_common_sources
tools_lxc_config_sources = files(
- 'lxc_config.c') + tools_common_sources
+ 'lxc_config.c') + tools_common_sources
tools_lxc_console_sources = files(
- 'lxc_console.c') + tools_common_sources
+ 'lxc_console.c') + tools_common_sources
tools_lxc_copy_sources = files(
- 'lxc_copy.c') + tools_common_sources
+ 'lxc_copy.c') + tools_common_sources
tools_lxc_create_sources = files(
- 'lxc_create.c') + tools_common_sources
+ 'lxc_create.c') + tools_common_sources
tools_lxc_destroy_sources = files(
- 'lxc_destroy.c') + tools_common_sources
+ 'lxc_destroy.c') + tools_common_sources
tools_lxc_device_sources = files(
- 'lxc_device.c') + tools_common_sources
+ 'lxc_device.c') + tools_common_sources
tools_lxc_execute_sources = files(
- 'lxc_execute.c') + tools_common_sources
+ 'lxc_execute.c') + tools_common_sources
tools_lxc_freeze_sources = files(
- 'lxc_freeze.c') + tools_common_sources
+ 'lxc_freeze.c') + tools_common_sources
tools_lxc_info_sources = files(
- 'lxc_info.c') + tools_common_sources
+ 'lxc_info.c') + tools_common_sources
tools_lxc_ls_sources = files(
- 'lxc_ls.c') + tools_common_sources
+ 'lxc_ls.c') + tools_common_sources
tools_lxc_monitor_sources = files(
- 'lxc_monitor.c') + tools_common_sources
+ 'lxc_monitor.c') + tools_common_sources
tools_lxc_snapshot_sources = files(
- 'lxc_snapshot.c') + tools_common_sources
+ 'lxc_snapshot.c') + tools_common_sources
tools_lxc_start_sources = files(
- 'lxc_start.c') + tools_common_sources
+ 'lxc_start.c') + tools_common_sources
tools_lxc_stop_sources = files(
- 'lxc_stop.c') + tools_common_sources
+ 'lxc_stop.c') + tools_common_sources
tools_lxc_top_sources = files(
- 'lxc_top.c') + tools_common_sources
+ 'lxc_top.c') + tools_common_sources
tools_lxc_unfreeze_sources = files(
- 'lxc_unfreeze.c') + tools_common_sources
+ 'lxc_unfreeze.c') + tools_common_sources
tools_lxc_unshare_sources = files(
- 'lxc_unshare.c') + tools_common_sources
+ 'lxc_unshare.c') + tools_common_sources
tools_lxc_wait_sources = files(
- 'lxc_wait.c') + tools_common_sources
+ 'lxc_wait.c') + tools_common_sources
public_programs += executable(
- 'lxc-autostart',
- tools_lxc_autostart_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-autostart',
+ tools_lxc_autostart_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-cgroup',
- tools_lxc_cgroup_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-cgroup',
+ tools_lxc_cgroup_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-checkpoint',
- tools_lxc_checkpoint_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-checkpoint',
+ tools_lxc_checkpoint_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-config',
- tools_lxc_config_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-config',
+ tools_lxc_config_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-console',
- tools_lxc_console_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-console',
+ tools_lxc_console_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-copy',
- tools_lxc_copy_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-copy',
+ tools_lxc_copy_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-create',
- tools_lxc_create_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-create',
+ tools_lxc_create_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-destroy',
- tools_lxc_destroy_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-destroy',
+ tools_lxc_destroy_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-device',
- tools_lxc_device_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-device',
+ tools_lxc_device_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-execute',
- tools_lxc_execute_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-execute',
+ tools_lxc_execute_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-freeze',
- tools_lxc_freeze_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-freeze',
+ tools_lxc_freeze_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-info',
- tools_lxc_info_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-info',
+ tools_lxc_info_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-ls',
- tools_lxc_ls_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-ls',
+ tools_lxc_ls_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-monitor',
- tools_lxc_monitor_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-monitor',
+ tools_lxc_monitor_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-snapshot',
- tools_lxc_snapshot_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-snapshot',
+ tools_lxc_snapshot_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-start',
- tools_lxc_start_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-start',
+ tools_lxc_start_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-stop',
- tools_lxc_stop_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-stop',
+ tools_lxc_stop_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-top',
- tools_lxc_top_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-top',
+ tools_lxc_top_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-unfreeze',
- tools_lxc_unfreeze_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-unfreeze',
+ tools_lxc_unfreeze_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-unshare',
- tools_lxc_unshare_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-unshare',
+ tools_lxc_unshare_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
public_programs += executable(
- 'lxc-wait',
- tools_lxc_wait_sources,
- include_directories : tools_liblxc_includes,
- dependencies : liblxc_dep,
- install : true)
+ 'lxc-wait',
+ tools_lxc_wait_sources,
+ include_directories: tools_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: true)
# SPDX-License-Identifier: LGPL-2.1-or-later
tests_liblxc_includes = include_directories(
- '.',
- '../lxc/',
- '../lxc/cgroups',
- '../lxc/lsm',
- '../lxc/storage',
- '../include',
- '../../')
+ '.',
+ '../lxc/',
+ '../lxc/cgroups',
+ '../lxc/lsm',
+ '../lxc/storage',
+ '../include',
+ '../../')
tests_common_sources = files(
- '../lxc/af_unix.c',
- '../lxc/af_unix.h',
- '../lxc/attach_options.h',
- '../lxc/caps.c',
- '../lxc/caps.h',
- '../lxc/commands.c',
- '../lxc/commands.h',
- '../lxc/commands_utils.c',
- '../lxc/commands_utils.h',
- '../lxc/compiler.h',
- '../lxc/conf.c',
- '../lxc/conf.h',
- '../lxc/confile.c',
- '../lxc/confile.h',
- '../lxc/confile_utils.c',
- '../lxc/confile_utils.h',
- '../lxc/cgroups/cgfsng.c',
- '../lxc/cgroups/cgroup.c',
- '../lxc/cgroups/cgroup.h',
- '../lxc/cgroups/cgroup2_devices.c',
- '../lxc/cgroups/cgroup2_devices.h',
- '../lxc/cgroups/cgroup_utils.c',
- '../lxc/cgroups/cgroup_utils.h',
- '../lxc/error.c',
- '../lxc/error.h',
- '../lxc/initutils.c',
- '../lxc/initutils.h',
- '../lxc/file_utils.c',
- '../lxc/file_utils.h',
- '../lxc/lsm/apparmor.c',
- '../lxc/lsm/lsm.c',
- '../lxc/lsm/lsm.h',
- '../lxc/lsm/nop.c',
- '../lxc/lsm/selinux.c',
- '../lxc/lxcseccomp.h',
- '../lxc/lxclock.c',
- '../lxc/lxclock.h',
- '../lxc/macro.h',
- '../lxc/mainloop.c',
- '../lxc/mainloop.h',
- '../lxc/memory_utils.h',
- '../lxc/monitor.c',
- '../lxc/monitor.h',
- '../lxc/mount_utils.c',
- '../lxc/mount_utils.h',
- '../lxc/namespace.c',
- '../lxc/namespace.h',
- '../lxc/network.c',
- '../lxc/network.h',
- '../lxc/nl.c',
- '../lxc/nl.h',
- '../lxc/parse.c',
- '../lxc/parse.h',
- '../lxc/process_utils.c',
- '../lxc/process_utils.h',
- '../lxc/ringbuf.c',
- '../lxc/ringbuf.h',
- '../lxc/seccomp.c',
- '../lxc/start.c',
- '../lxc/start.h',
- '../lxc/state.c',
- '../lxc/state.h',
- '../lxc/storage/btrfs.c',
- '../lxc/storage/btrfs.h',
- '../lxc/storage/dir.c',
- '../lxc/storage/dir.h',
- '../lxc/storage/loop.c',
- '../lxc/storage/loop.h',
- '../lxc/storage/lvm.c',
- '../lxc/storage/lvm.h',
- '../lxc/storage/nbd.c',
- '../lxc/storage/nbd.h',
- '../lxc/storage/overlay.c',
- '../lxc/storage/overlay.h',
- '../lxc/storage/rbd.c',
- '../lxc/storage/rbd.h',
- '../lxc/storage/rsync.c',
- '../lxc/storage/rsync.h',
- '../lxc/storage/storage.c',
- '../lxc/storage/storage.h',
- '../lxc/storage/storage_utils.c',
- '../lxc/storage/storage_utils.h',
- '../lxc/storage/zfs.c',
- '../lxc/storage/zfs.h',
- '../lxc/string_utils.c',
- '../lxc/string_utils.h',
- '../lxc/sync.c',
- '../lxc/sync.h',
- '../lxc/terminal.c',
- '../lxc/terminal.h',
- '../lxc/utils.c',
- '../lxc/utils.h',
- '../lxc/uuid.c',
- '../lxc/uuid.h',
- '../lxc/log.h',
- '../lxc/log.c') + include_sources + netns_ifaddrs_sources
-
-test_programs += executable(
- 'lxc-test-arch-parse',
- files('arch_parse.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-apparmor',
- files('aa.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-api-reboot',
- files('api_reboot.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-attach',
- files('attach.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-basic',
- files('basic.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-capabilities',
- files('capabilities.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-cgpath',
- files('cgpath.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-clonetest',
- files('clonetest.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-concurrent',
- files('concurrent.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-config-jump-table',
- files('config_jump_table.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-console',
- files('console.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
-
-test_programs += executable(
- 'lxc-test-console-log',
- files('console_log.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ '../lxc/af_unix.c',
+ '../lxc/af_unix.h',
+ '../lxc/attach_options.h',
+ '../lxc/caps.c',
+ '../lxc/caps.h',
+ '../lxc/commands.c',
+ '../lxc/commands.h',
+ '../lxc/commands_utils.c',
+ '../lxc/commands_utils.h',
+ '../lxc/compiler.h',
+ '../lxc/conf.c',
+ '../lxc/conf.h',
+ '../lxc/confile.c',
+ '../lxc/confile.h',
+ '../lxc/confile_utils.c',
+ '../lxc/confile_utils.h',
+ '../lxc/cgroups/cgfsng.c',
+ '../lxc/cgroups/cgroup.c',
+ '../lxc/cgroups/cgroup.h',
+ '../lxc/cgroups/cgroup2_devices.c',
+ '../lxc/cgroups/cgroup2_devices.h',
+ '../lxc/cgroups/cgroup_utils.c',
+ '../lxc/cgroups/cgroup_utils.h',
+ '../lxc/error.c',
+ '../lxc/error.h',
+ '../lxc/initutils.c',
+ '../lxc/initutils.h',
+ '../lxc/file_utils.c',
+ '../lxc/file_utils.h',
+ '../lxc/lsm/apparmor.c',
+ '../lxc/lsm/lsm.c',
+ '../lxc/lsm/lsm.h',
+ '../lxc/lsm/nop.c',
+ '../lxc/lsm/selinux.c',
+ '../lxc/lxcseccomp.h',
+ '../lxc/lxclock.c',
+ '../lxc/lxclock.h',
+ '../lxc/macro.h',
+ '../lxc/mainloop.c',
+ '../lxc/mainloop.h',
+ '../lxc/memory_utils.h',
+ '../lxc/monitor.c',
+ '../lxc/monitor.h',
+ '../lxc/mount_utils.c',
+ '../lxc/mount_utils.h',
+ '../lxc/namespace.c',
+ '../lxc/namespace.h',
+ '../lxc/network.c',
+ '../lxc/network.h',
+ '../lxc/nl.c',
+ '../lxc/nl.h',
+ '../lxc/parse.c',
+ '../lxc/parse.h',
+ '../lxc/process_utils.c',
+ '../lxc/process_utils.h',
+ '../lxc/ringbuf.c',
+ '../lxc/ringbuf.h',
+ '../lxc/seccomp.c',
+ '../lxc/start.c',
+ '../lxc/start.h',
+ '../lxc/state.c',
+ '../lxc/state.h',
+ '../lxc/storage/btrfs.c',
+ '../lxc/storage/btrfs.h',
+ '../lxc/storage/dir.c',
+ '../lxc/storage/dir.h',
+ '../lxc/storage/loop.c',
+ '../lxc/storage/loop.h',
+ '../lxc/storage/lvm.c',
+ '../lxc/storage/lvm.h',
+ '../lxc/storage/nbd.c',
+ '../lxc/storage/nbd.h',
+ '../lxc/storage/overlay.c',
+ '../lxc/storage/overlay.h',
+ '../lxc/storage/rbd.c',
+ '../lxc/storage/rbd.h',
+ '../lxc/storage/rsync.c',
+ '../lxc/storage/rsync.h',
+ '../lxc/storage/storage.c',
+ '../lxc/storage/storage.h',
+ '../lxc/storage/storage_utils.c',
+ '../lxc/storage/storage_utils.h',
+ '../lxc/storage/zfs.c',
+ '../lxc/storage/zfs.h',
+ '../lxc/string_utils.c',
+ '../lxc/string_utils.h',
+ '../lxc/sync.c',
+ '../lxc/sync.h',
+ '../lxc/terminal.c',
+ '../lxc/terminal.h',
+ '../lxc/utils.c',
+ '../lxc/utils.h',
+ '../lxc/uuid.c',
+ '../lxc/uuid.h',
+ '../lxc/log.h',
+ '../lxc/log.c') + include_sources + netns_ifaddrs_sources
+
+test_programs += executable(
+ 'lxc-test-arch-parse',
+ files('arch_parse.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-apparmor',
+ files('aa.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-api-reboot',
+ files('api_reboot.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-attach',
+ files('attach.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-basic',
+ files('basic.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-capabilities',
+ files('capabilities.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-cgpath',
+ files('cgpath.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-clonetest',
+ files('clonetest.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-concurrent',
+ files('concurrent.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-config-jump-table',
+ files('config_jump_table.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-console',
+ files('console.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
+
+test_programs += executable(
+ 'lxc-test-console-log',
+ files('console_log.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-containertests',
- files('containertests.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-containertests',
+ files('containertests.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-createtest',
- files('createtest.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-createtest',
+ files('createtest.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-criu-check-feature',
- files('criu_check_feature.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-criu-check-feature',
+ files('criu_check_feature.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-cve-2019-5736',
- files('cve-2019-5736.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-cve-2019-5736',
+ files('cve-2019-5736.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-destroytest',
- files('destroytest.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-destroytest',
+ files('destroytest.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-device-add-remove',
- files('device_add_remove.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-device-add-remove',
+ files('device_add_remove.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-get-item',
- files('get_item.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-get-item',
+ files('get_item.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-getkeys',
- files('getkeys.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-getkeys',
+ files('getkeys.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-list',
- files('list.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-list',
+ files('list.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-locktests',
- files('locktests.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-locktests',
+ files('locktests.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-lxc-test-utils',
- files('lxc-test-utils.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-lxc-test-utils',
+ files('lxc-test-utils.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-lxc-raw-clone',
- files('lxc_raw_clone.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-lxc-raw-clone',
+ files('lxc_raw_clone.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-lxcpath',
- files('lxcpath.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-lxcpath',
+ files('lxcpath.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-may-control',
- files('may_control.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-may-control',
+ files('may_control.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-mount-injection',
- files('mount_injection.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-mount-injection',
+ files('mount_injection.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-parse-config-file',
- files('parse_config_file.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-parse-config-file',
+ files('parse_config_file.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-proc-pid',
- files('proc_pid.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-proc-pid',
+ files('proc_pid.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-reboot',
- files('reboot.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-reboot',
+ files('reboot.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-rootfs-options',
- files('rootfs_options.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-rootfs-options',
+ files('rootfs_options.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-saveconfig',
- files('saveconfig.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-saveconfig',
+ files('saveconfig.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-share-ns',
- files('share_ns.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-share-ns',
+ files('share_ns.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-shortlived',
- files('shortlived.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-shortlived',
+ files('shortlived.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-shutdowntest',
- files('shutdowntest.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-shutdowntest',
+ files('shutdowntest.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-snapshot',
- files('snapshot.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-snapshot',
+ files('snapshot.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-startone',
- files('startone.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-startone',
+ files('startone.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-state-server',
- files('state_server.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-state-server',
+ files('state_server.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-sys-mixed',
- files('sys_mixed.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-sys-mixed',
+ files('sys_mixed.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += executable(
- 'lxc-test-sysctls',
- files('sysctls.c') + tests_common_sources,
- include_directories : tests_liblxc_includes,
- dependencies : liblxc_dep,
- install: false,
- build_by_default: want_tests != false)
+ 'lxc-test-sysctls',
+ files('sysctls.c') + tests_common_sources,
+ include_directories: tests_liblxc_includes,
+ dependencies: liblxc_dep,
+ install: false,
+ build_by_default: want_tests != false)
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-apparmor-generated',
- output : 'lxc-test-apparmor-generated')
+ configuration: dummy_config_data,
+ input: 'lxc-test-apparmor-generated',
+ output: 'lxc-test-apparmor-generated')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-apparmor-mount',
- output : 'lxc-test-apparmor-mount')
+ configuration: dummy_config_data,
+ input: 'lxc-test-apparmor-mount',
+ output: 'lxc-test-apparmor-mount')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-automount',
- output : 'lxc-test-automount')
+ configuration: dummy_config_data,
+ input: 'lxc-test-automount',
+ output: 'lxc-test-automount')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-autostart',
- output : 'lxc-test-autostart')
+ configuration: dummy_config_data,
+ input: 'lxc-test-autostart',
+ output: 'lxc-test-autostart')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-checkpoint-restore',
- output : 'lxc-test-checkpoint-restore')
+ configuration: dummy_config_data,
+ input: 'lxc-test-checkpoint-restore',
+ output: 'lxc-test-checkpoint-restore')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-cloneconfig',
- output : 'lxc-test-cloneconfig')
+ configuration: dummy_config_data,
+ input: 'lxc-test-cloneconfig',
+ output: 'lxc-test-cloneconfig')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-createconfig',
- output : 'lxc-test-createconfig')
+ configuration: dummy_config_data,
+ input: 'lxc-test-createconfig',
+ output: 'lxc-test-createconfig')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-exit-code',
- output : 'lxc-test-exit-code')
+ configuration: dummy_config_data,
+ input: 'lxc-test-exit-code',
+ output: 'lxc-test-exit-code')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-fuzzers',
- output : 'lxc-test-fuzzers')
+ configuration: dummy_config_data,
+ input: 'lxc-test-fuzzers',
+ output: 'lxc-test-fuzzers')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-lxc-attach',
- output : 'lxc-test-lxc-attach')
+ configuration: dummy_config_data,
+ input: 'lxc-test-lxc-attach',
+ output: 'lxc-test-lxc-attach')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-no-new-privs',
- output : 'lxc-test-no-new-privs')
+ configuration: dummy_config_data,
+ input: 'lxc-test-no-new-privs',
+ output: 'lxc-test-no-new-privs')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-procsys',
- output : 'lxc-test-procsys')
+ configuration: dummy_config_data,
+ input: 'lxc-test-procsys',
+ output: 'lxc-test-procsys')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-rootfs',
- output : 'lxc-test-rootfs')
+ configuration: dummy_config_data,
+ input: 'lxc-test-rootfs',
+ output: 'lxc-test-rootfs')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-snapdeps',
- output : 'lxc-test-snapdeps')
+ configuration: dummy_config_data,
+ input: 'lxc-test-snapdeps',
+ output: 'lxc-test-snapdeps')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-symlink',
- output : 'lxc-test-symlink')
+ configuration: dummy_config_data,
+ input: 'lxc-test-symlink',
+ output: 'lxc-test-symlink')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-unpriv',
- output : 'lxc-test-unpriv')
+ configuration: dummy_config_data,
+ input: 'lxc-test-unpriv',
+ output: 'lxc-test-unpriv')
test_programs += configure_file(
- configuration : conf,
- input : 'lxc-test-usernic.in',
- output : 'lxc-test-usernic')
+ configuration: conf,
+ input: 'lxc-test-usernic.in',
+ output: 'lxc-test-usernic')
test_programs += configure_file(
- configuration : dummy_config_data,
- input : 'lxc-test-usernsexec',
- output : 'lxc-test-usernsexec')
+ configuration: dummy_config_data,
+ input: 'lxc-test-usernsexec',
+ output: 'lxc-test-usernsexec')
# SPDX-License-Identifier: LGPL-2.1-or-later
template_scripts = configure_file(
- configuration : dummy_config_data,
- input : 'lxc-busybox.in',
- output : 'lxc-busybox')
-install_data(join_paths(project_build_root, 'templates/lxc-busybox'), install_dir : lxctemplatedir)
+ configuration: dummy_config_data,
+ input: 'lxc-busybox.in',
+ output: 'lxc-busybox')
+install_data(join_paths(project_build_root, 'templates/lxc-busybox'), install_dir: lxctemplatedir)
template_config_data = configuration_data()
template_config_data.set_quoted('LXCHOOKDIR', lxchookdir)
template_config_data.set_quoted('PACKAGE_VERSION', meson.project_version())
template_scripts = configure_file(
- configuration : template_config_data,
- input : 'lxc-download.in',
- output : 'lxc-download')
-install_data(join_paths(project_build_root, 'templates/lxc-download'), install_dir : lxchookdir)
+ configuration: template_config_data,
+ input: 'lxc-download.in',
+ output: 'lxc-download')
+install_data(join_paths(project_build_root, 'templates/lxc-download'), install_dir: lxchookdir)
template_scripts = configure_file(
- configuration : template_config_data,
- input : 'lxc-local.in',
- output : 'lxc-local')
-install_data(join_paths(project_build_root, 'templates/lxc-local'), install_dir : lxchookdir)
+ configuration: template_config_data,
+ input: 'lxc-local.in',
+ output: 'lxc-local')
+install_data(join_paths(project_build_root, 'templates/lxc-local'), install_dir: lxchookdir)
template_scripts = configure_file(
- configuration : template_config_data,
- input : 'lxc-oci.in',
- output : 'lxc-oci')
-install_data(join_paths(project_build_root, 'templates/lxc-oci'), install_dir : lxchookdir)
+ configuration: template_config_data,
+ input: 'lxc-oci.in',
+ output: 'lxc-oci')
+install_data(join_paths(project_build_root, 'templates/lxc-oci'), install_dir: lxchookdir)