]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
meson: Add init scripts
authorStéphane Graber <stgraber@ubuntu.com>
Mon, 30 May 2022 22:29:52 +0000 (18:29 -0400)
committerStéphane Graber <stgraber@ubuntu.com>
Mon, 30 May 2022 23:16:40 +0000 (19:16 -0400)
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
config/init/systemd/meson.build
config/init/sysvinit/meson.build [new file with mode: 0644]
config/init/upstart/meson.build [new file with mode: 0644]
meson.build
meson_options.txt

index 6904badf9750d00416b212b59299587b95607b59..21e75650404d650638e99d9933cea4126f67062d 100644 (file)
@@ -6,3 +6,36 @@ lxc_apparmor_load = configure_file(
     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
diff --git a/config/init/sysvinit/meson.build b/config/init/sysvinit/meson.build
new file mode 100644 (file)
index 0000000..91a45dd
--- /dev/null
@@ -0,0 +1,17 @@
+# 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
diff --git a/config/init/upstart/meson.build b/config/init/upstart/meson.build
new file mode 100644 (file)
index 0000000..b0afc0b
--- /dev/null
@@ -0,0 +1,24 @@
+# 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
index 1fce9d6f030a1263a77e693604a53f4cce0678e7..9be644f766af62582727ae7b5c56717d44eae045 100644 (file)
@@ -117,6 +117,7 @@ conf.set_quoted('LXC_USERNIC_DB', lxc_user_network_db)
 
 # Custom configuration.
 cgrouppattern = get_option('cgroup-pattern')
+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')
@@ -621,6 +622,8 @@ 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/templates')
 subdir('config/templates/common.conf.d')
index cb466bd367bcb203346c650d283e87f297e783d4..6459cb7f9506864f72c4eb68cf766b2021f3aaaa 100644 (file)
@@ -7,9 +7,9 @@ option('cgroup-pattern', type: 'string', value: '',
 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')