--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+if libapparmor.found()
+ configure_file(
+ configuration: conf,
+ input: 'container-base',
+ output: 'container-base',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d', 'abstractions', 'lxc'))
+
+ configure_file(
+ configuration: conf,
+ input: 'start-container.in',
+ output: 'start-container',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d', 'abstractions', 'lxc'))
+endif
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+if libapparmor.found()
+ configure_file(
+ configuration: dummy_config_data,
+ input: 'lxc-containers',
+ output: 'lxc-containers',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d'))
+
+ configure_file(
+ configuration: dummy_config_data,
+ input: 'usr.bin.lxc-start',
+ output: 'usr.bin.lxc-start',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d'))
+endif
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+if libapparmor.found()
+ configure_file(
+ configuration: dummy_config_data,
+ input: 'lxc-default',
+ output: 'lxc-default',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d', 'lxc'))
+
+ configure_file(
+ configuration: dummy_config_data,
+ input: 'lxc-default-cgns',
+ output: 'lxc-default-cgns',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d', 'lxc'))
+
+ configure_file(
+ configuration: dummy_config_data,
+ input: 'lxc-default-with-mounting',
+ output: 'lxc-default-with-mounting',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d', 'lxc'))
+
+ configure_file(
+ configuration: dummy_config_data,
+ input: 'lxc-default-with-nesting',
+ output: 'lxc-default-with-nesting',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'apparmor.d', 'lxc'))
+endif
output: 'lxc-apparmor-load',
install: true,
install_dir: lxclibexec)
+
+if 'systemd' in init_script
+ systemd = dependency('systemd')
+ systemd_system_unit_dir = systemd.get_variable('systemdsystemunitdir')
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc-monitord.service.in',
+ output: 'lxc-monitord.service',
+ install: true,
+ install_dir: systemd_system_unit_dir)
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc-net.service.in',
+ output: 'lxc-net.service',
+ install: true,
+ install_dir: systemd_system_unit_dir)
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc.service.in',
+ output: 'lxc.service',
+ install: true,
+ install_dir: systemd_system_unit_dir)
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc@.service.in',
+ output: 'lxc@.service',
+ install: true,
+ install_dir: systemd_system_unit_dir)
+endif
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+if 'sysvinit' in init_script
+ configure_file(
+ configuration: conf,
+ input: 'lxc-containers.in',
+ output: 'lxc-containers',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'init.d'))
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc-net.in',
+ output: 'lxc-net',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'init.d'))
+endif
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+if 'upstart' in init_script
+ configure_file(
+ configuration: conf,
+ input: 'lxc.conf.in',
+ output: 'lxc.conf',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'init'))
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc-instance.conf',
+ output: 'lxc-instance.conf',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'init'))
+
+ configure_file(
+ configuration: conf,
+ input: 'lxc-net.conf.in',
+ output: 'lxc-net.conf',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'init'))
+endif
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+fs = import('fs')
+if fs.is_dir('/etc/sysconfig')
+ configure_file(
+ configuration: conf,
+ input: 'lxc.in',
+ output: 'lxc',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'sysconfig'))
+elif fs.is_dir('/etc/default')
+ configure_file(
+ configuration: conf,
+ input: 'lxc.in',
+ output: 'lxc',
+ install: true,
+ install_dir: join_paths(sysconfdir, 'default'))
+endif
# Custom configuration.
cgrouppattern = get_option('cgroup-pattern')
-wants_io_uring = get_option('io-uring-event-loop')
+init_script = get_option('init-script')
want_examples = get_option('examples')
+want_io_uring = get_option('io-uring-event-loop')
want_pam_cgroup = get_option('pam-cgroup')
want_mans = get_option('man')
want_tests = get_option('tests')
# Feature detection
## I/O uring.
-if wants_io_uring
+if want_io_uring
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')
conf.set('TIME_EPOCH', time_epoch)
## Manpages.
-sgml2man = find_program('docbook2X2man', 'docbook2x-man', 'db2x_docbook2man', 'docbook2man', 'docbook-to-man', required: false)
+sgml2man = find_program('docbook2X2man', 'docbook2x-man', 'db2x_docbook2man', 'docbook2man', 'docbook-to-man', required: want_mans)
docbook2man = find_program('docbook2man', required: false)
docconf = configuration_data()
libapparmor,
]
-if wants_io_uring
+if want_io_uring
liblxc_dependencies += [liburing]
endif
dependencies: liblxc_dependencies)
# Rest of sub-directories.
+subdir('config/apparmor')
+subdir('config/apparmor/abstractions')
+subdir('config/apparmor/profiles')
subdir('config/bash')
subdir('config/etc')
subdir('config/init/common')
subdir('config/init/systemd')
+subdir('config/init/sysvinit')
+subdir('config/init/upstart')
subdir('config/selinux')
+subdir('config/sysconfig')
subdir('config/templates')
subdir('config/templates/common.conf.d')
subdir('config/yum')
option('examples', type: 'boolean', value: 'true',
description: 'build and install examples')
-option('init-script', type: 'combo',
- choices: ['systemd', 'sysvinit', 'openrc', 'upstart'], value: 'systemd',
- description: 'init script')
+option('init-script', type : 'array',
+ choices : ['systemd', 'sysvinit', 'upstart'], value : ['systemd'],
+ description : 'init script')
option('io-uring-event-loop', type: 'boolean', value: 'false',
description: 'Enable io-uring based event loop')