]> git.proxmox.com Git - systemd.git/blame - units/meson.build
Fix boot-and-services autopkgtest
[systemd.git] / units / meson.build
CommitLineData
a032b68d 1# SPDX-License-Identifier: LGPL-2.1-or-later
52ad194e 2
a10f5d05
MB
3with_runlevels = conf.get('HAVE_SYSV_COMPAT') == 1
4
81c58355
MB
5units = [
6 ['basic.target', ''],
46cdbd49 7 ['blockdev@.target', ''],
81c58355 8 ['bluetooth.target', ''],
6e866b33 9 ['boot-complete.target', ''],
81c58355
MB
10 ['cryptsetup-pre.target', 'HAVE_LIBCRYPTSETUP'],
11 ['cryptsetup.target', 'HAVE_LIBCRYPTSETUP',
12 'sysinit.target.wants/'],
3a6ce677
BR
13 ['veritysetup-pre.target', 'HAVE_LIBCRYPTSETUP'],
14 ['veritysetup.target', 'HAVE_LIBCRYPTSETUP',
15 'sysinit.target.wants/'],
ea0999c9
MB
16 ['integritysetup-pre.target', 'HAVE_LIBCRYPTSETUP'],
17 ['integritysetup.target', 'HAVE_LIBCRYPTSETUP',
18 'sysinit.target.wants/'],
81c58355
MB
19 ['dev-hugepages.mount', '',
20 'sysinit.target.wants/'],
21 ['dev-mqueue.mount', '',
22 'sysinit.target.wants/'],
23 ['emergency.target', ''],
24 ['exit.target', ''],
ea0999c9 25 ['factory-reset.target', ''],
81c58355 26 ['final.target', ''],
a032b68d 27 ['first-boot-complete.target', ''],
81c58355
MB
28 ['getty.target', '',
29 'multi-user.target.wants/'],
f5e65279 30 ['getty-pre.target', ''],
81c58355 31 ['graphical.target', '',
a032b68d 32 'default.target' + (with_runlevels ? ' runlevel5.target' : '')],
81c58355
MB
33 ['halt.target', ''],
34 ['hibernate.target', 'ENABLE_HIBERNATE'],
35 ['hybrid-sleep.target', 'ENABLE_HIBERNATE'],
bb4f798a 36 ['suspend-then-hibernate.target', 'ENABLE_HIBERNATE'],
a10f5d05
MB
37 ['initrd-cleanup.service', 'ENABLE_INITRD'],
38 ['initrd-fs.target', 'ENABLE_INITRD'],
a10f5d05
MB
39 ['initrd-root-device.target', 'ENABLE_INITRD'],
40 ['initrd-root-fs.target', 'ENABLE_INITRD'],
41 ['initrd-switch-root.service', 'ENABLE_INITRD'],
42 ['initrd-switch-root.target', 'ENABLE_INITRD'],
43 ['initrd-udevadm-cleanup-db.service', 'ENABLE_INITRD'],
8b3d4ff0 44 ['initrd-usr-fs.target', 'ENABLE_INITRD'],
a10f5d05 45 ['initrd.target', 'ENABLE_INITRD'],
81c58355
MB
46 ['kexec.target', ''],
47 ['ldconfig.service', 'ENABLE_LDCONFIG',
48 'sysinit.target.wants/'],
49 ['local-fs-pre.target', ''],
50 ['local-fs.target', ''],
51 ['machine.slice', 'ENABLE_MACHINED'],
bb4f798a 52 ['machines.target', 'ENABLE_MACHINED'],
46cdbd49 53 ['modprobe@.service', ''],
81c58355 54 ['multi-user.target', '',
a10f5d05 55 (with_runlevels ? 'runlevel2.target runlevel3.target runlevel4.target' : '')],
81c58355
MB
56 ['network-online.target', ''],
57 ['network-pre.target', ''],
58 ['network.target', ''],
59 ['nss-lookup.target', ''],
60 ['nss-user-lookup.target', ''],
61 ['paths.target', ''],
62 ['poweroff.target', '',
a10f5d05 63 (with_runlevels ? 'runlevel0.target' : '')],
81c58355
MB
64 ['printer.target', ''],
65 ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT',
66 'sysinit.target.wants/'],
67 ['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'],
68 ['reboot.target', '',
a032b68d
MB
69 'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')],
70 ['remote-cryptsetup.target', 'HAVE_LIBCRYPTSETUP',
71 'initrd-root-device.target.wants/'],
3a6ce677
BR
72 ['remote-veritysetup.target', 'HAVE_LIBCRYPTSETUP',
73 'initrd-root-device.target.wants/'],
81c58355 74 ['remote-fs-pre.target', ''],
bb4f798a 75 ['remote-fs.target', ''],
81c58355 76 ['rescue.target', '',
a10f5d05 77 (with_runlevels ? 'runlevel1.target' : '')],
81c58355
MB
78 ['rpcbind.target', ''],
79 ['shutdown.target', ''],
80 ['sigpwr.target', ''],
81 ['sleep.target', ''],
82 ['slices.target', ''],
83 ['smartcard.target', ''],
84 ['sockets.target', ''],
85 ['sound.target', ''],
86 ['suspend.target', ''],
87 ['swap.target', ''],
88 ['sys-fs-fuse-connections.mount', '',
89 'sysinit.target.wants/'],
90 ['sys-kernel-config.mount', '',
91 'sysinit.target.wants/'],
92 ['sys-kernel-debug.mount', '',
93 'sysinit.target.wants/'],
46cdbd49
BR
94 ['sys-kernel-tracing.mount', '',
95 'sysinit.target.wants/'],
81c58355
MB
96 ['sysinit.target', ''],
97 ['syslog.socket', ''],
46cdbd49 98 ['system-systemd\\x2dcryptsetup.slice', 'HAVE_LIBCRYPTSETUP'],
81c58355 99 ['system-update.target', ''],
b012e921
MB
100 ['system-update-pre.target', ''],
101 ['system-update-cleanup.service', ''],
81c58355
MB
102 ['systemd-ask-password-console.path', '',
103 'sysinit.target.wants/'],
46cdbd49 104 ['systemd-ask-password-console.service', ''],
81c58355
MB
105 ['systemd-ask-password-wall.path', '',
106 'multi-user.target.wants/'],
46cdbd49 107 ['systemd-ask-password-wall.service', ''],
ea0999c9 108 ['systemd-boot-system-token.service', 'HAVE_GNU_EFI',
46cdbd49 109 'sysinit.target.wants/'],
ea0999c9 110 ['systemd-boot-update.service', 'HAVE_GNU_EFI'],
81c58355
MB
111 ['systemd-coredump.socket', 'ENABLE_COREDUMP',
112 'sockets.target.wants/'],
46cdbd49
BR
113 ['systemd-exit.service', ''],
114 ['systemd-firstboot.service', 'ENABLE_FIRSTBOOT',
115 'sysinit.target.wants/'],
116 ['systemd-halt.service', ''],
a032b68d 117 ['systemd-homed-activate.service', 'ENABLE_HOMED'],
a10f5d05 118 ['systemd-initctl.socket', 'HAVE_SYSV_COMPAT',
81c58355 119 'sockets.target.wants/'],
46cdbd49
BR
120 ['systemd-journal-catalog-update.service', '',
121 'sysinit.target.wants/'],
122 ['systemd-journal-flush.service', '',
123 'sysinit.target.wants/'],
81c58355
MB
124 ['systemd-journal-gatewayd.socket', 'ENABLE_REMOTE HAVE_MICROHTTPD'],
125 ['systemd-journal-remote.socket', 'ENABLE_REMOTE HAVE_MICROHTTPD'],
126 ['systemd-journald-audit.socket', '',
127 'sockets.target.wants/'],
128 ['systemd-journald-dev-log.socket', '',
129 'sockets.target.wants/'],
130 ['systemd-journald.socket', '',
131 'sockets.target.wants/'],
46cdbd49
BR
132 ['systemd-kexec.service', ''],
133 ['systemd-machine-id-commit.service', '',
134 'sysinit.target.wants/'],
135 ['systemd-journald@.socket', ''],
136 ['systemd-journald-varlink@.socket', ''],
bb4f798a 137 ['systemd-networkd.socket', 'ENABLE_NETWORKD'],
46cdbd49
BR
138 ['systemd-poweroff.service', ''],
139 ['systemd-reboot.service', ''],
81c58355 140 ['systemd-rfkill.socket', 'ENABLE_RFKILL'],
3a6ce677 141 ['systemd-sysext.service', 'ENABLE_SYSEXT'],
f5caa8fa
MB
142 ['systemd-sysupdate.timer', 'ENABLE_SYSUPDATE'],
143 ['systemd-sysupdate-reboot.timer', 'ENABLE_SYSUPDATE'],
46cdbd49
BR
144 ['systemd-sysusers.service', 'ENABLE_SYSUSERS',
145 'sysinit.target.wants/'],
146 ['systemd-tmpfiles-clean.service', 'ENABLE_TMPFILES'],
e1f67bc7 147 ['systemd-tmpfiles-clean.timer', 'ENABLE_TMPFILES',
81c58355 148 'timers.target.wants/'],
46cdbd49
BR
149 ['systemd-tmpfiles-setup-dev.service', 'ENABLE_TMPFILES',
150 'sysinit.target.wants/'],
151 ['systemd-tmpfiles-setup.service', 'ENABLE_TMPFILES',
152 'sysinit.target.wants/'],
81c58355
MB
153 ['systemd-udevd-control.socket', '',
154 'sockets.target.wants/'],
46cdbd49
BR
155 ['systemd-udev-settle.service', ''],
156 ['systemd-udev-trigger.service', '',
157 'sysinit.target.wants/'],
81c58355
MB
158 ['systemd-udevd-kernel.socket', '',
159 'sockets.target.wants/'],
a10f5d05 160 ['systemd-userdbd.socket', 'ENABLE_USERDB'],
bb4f798a 161 ['time-set.target', ''],
81c58355
MB
162 ['time-sync.target', ''],
163 ['timers.target', ''],
f5e65279
MB
164 ['tmp.mount', '',
165 'local-fs.target.wants/'],
81c58355 166 ['umount.target', ''],
129ef395 167 ['usb-gadget.target', ''],
81c58355
MB
168 ['user.slice', ''],
169 ['var-lib-machines.mount', 'ENABLE_MACHINED',
170 'remote-fs.target.wants/ machines.target.wants/'],
ea0999c9 171 ['systemd-oomd.socket', 'ENABLE_OOMD'],
81c58355
MB
172]
173
174in_units = [
8b3d4ff0
MB
175 ['console-getty.service', ''],
176 ['container-getty@.service', ''],
81c58355
MB
177 ['debug-shell.service', ''],
178 ['emergency.service', ''],
8b3d4ff0
MB
179 ['getty@.service', '',
180 'autovt@.service'],
086111aa 181 ['initrd-parse-etc.service', 'ENABLE_INITRD'],
81c58355
MB
182 ['kmod-static-nodes.service', 'HAVE_KMOD ENABLE_TMPFILES',
183 'sysinit.target.wants/'],
184 ['quotaon.service', 'ENABLE_QUOTACHECK'],
185 ['rc-local.service', 'HAVE_SYSV_COMPAT'],
186 ['rescue.service', ''],
8b3d4ff0 187 ['serial-getty@.service', ''],
81c58355
MB
188 ['systemd-backlight@.service', 'ENABLE_BACKLIGHT'],
189 ['systemd-binfmt.service', 'ENABLE_BINFMT',
190 'sysinit.target.wants/'],
ea0999c9 191 ['systemd-bless-boot.service', 'HAVE_GNU_EFI HAVE_BLKID'],
6e866b33 192 ['systemd-boot-check-no-failures.service', ''],
81c58355 193 ['systemd-coredump@.service', 'ENABLE_COREDUMP'],
f2dec872 194 ['systemd-pstore.service', 'ENABLE_PSTORE'],
81c58355
MB
195 ['systemd-fsck-root.service', ''],
196 ['systemd-fsck@.service', ''],
81c58355
MB
197 ['systemd-hibernate-resume@.service', 'ENABLE_HIBERNATE'],
198 ['systemd-hibernate.service', 'ENABLE_HIBERNATE'],
199 ['systemd-hybrid-sleep.service', 'ENABLE_HIBERNATE'],
b012e921 200 ['systemd-suspend-then-hibernate.service', 'ENABLE_HIBERNATE'],
81c58355
MB
201 ['systemd-hostnamed.service', 'ENABLE_HOSTNAMED',
202 'dbus-org.freedesktop.hostname1.service'],
203 ['systemd-hwdb-update.service', 'ENABLE_HWDB',
204 'sysinit.target.wants/'],
205 ['systemd-importd.service', 'ENABLE_IMPORTD',
206 'dbus-org.freedesktop.import1.service'],
a10f5d05 207 ['systemd-initctl.service', 'HAVE_SYSV_COMPAT'],
81c58355
MB
208 ['systemd-journal-gatewayd.service', 'ENABLE_REMOTE HAVE_MICROHTTPD'],
209 ['systemd-journal-remote.service', 'ENABLE_REMOTE HAVE_MICROHTTPD'],
210 ['systemd-journal-upload.service', 'ENABLE_REMOTE HAVE_LIBCURL'],
211 ['systemd-journald.service', '',
212 'sysinit.target.wants/'],
46cdbd49 213 ['systemd-journald@.service', ''],
81c58355
MB
214 ['systemd-localed.service', 'ENABLE_LOCALED',
215 'dbus-org.freedesktop.locale1.service'],
216 ['systemd-logind.service', 'ENABLE_LOGIND',
217 'multi-user.target.wants/ dbus-org.freedesktop.login1.service'],
81c58355
MB
218 ['systemd-machined.service', 'ENABLE_MACHINED',
219 'dbus-org.freedesktop.machine1.service'],
220 ['systemd-modules-load.service', 'HAVE_KMOD',
221 'sysinit.target.wants/'],
ea0999c9 222 ['systemd-network-generator.service', ''],
bb4f798a
MB
223 ['systemd-networkd.service', 'ENABLE_NETWORKD'],
224 ['systemd-networkd-wait-online.service', 'ENABLE_NETWORKD'],
f5caa8fa 225 ['systemd-networkd-wait-online@.service','ENABLE_NETWORKD'],
81c58355 226 ['systemd-nspawn@.service', ''],
f5caa8fa 227 ['systemd-oomd.service', 'ENABLE_OOMD'],
b012e921
MB
228 ['systemd-portabled.service', 'ENABLE_PORTABLED',
229 'dbus-org.freedesktop.portable1.service'],
46cdbd49 230 ['systemd-userdbd.service', 'ENABLE_USERDB'],
a10f5d05 231 ['systemd-homed.service', 'ENABLE_HOMED'],
81c58355
MB
232 ['systemd-quotacheck.service', 'ENABLE_QUOTACHECK'],
233 ['systemd-random-seed.service', 'ENABLE_RANDOMSEED',
234 'sysinit.target.wants/'],
bb4f798a
MB
235 ['systemd-remount-fs.service', ''],
236 ['systemd-resolved.service', 'ENABLE_RESOLVE'],
81c58355
MB
237 ['systemd-rfkill.service', 'ENABLE_RFKILL'],
238 ['systemd-suspend.service', ''],
239 ['systemd-sysctl.service', '',
240 'sysinit.target.wants/'],
f5caa8fa
MB
241 ['systemd-sysupdate.service', 'ENABLE_SYSUPDATE'],
242 ['systemd-sysupdate-reboot.service', 'ENABLE_SYSUPDATE'],
81c58355
MB
243 ['systemd-timedated.service', 'ENABLE_TIMEDATED',
244 'dbus-org.freedesktop.timedate1.service'],
bb4f798a 245 ['systemd-timesyncd.service', 'ENABLE_TIMESYNCD'],
b012e921 246 ['systemd-time-wait-sync.service', 'ENABLE_TIMESYNCD'],
81c58355
MB
247 ['systemd-udevd.service', '',
248 'sysinit.target.wants/'],
249 ['systemd-update-done.service', '',
250 'sysinit.target.wants/'],
f5e65279 251 ['systemd-update-utmp-runlevel.service', 'ENABLE_UTMP HAVE_SYSV_COMPAT',
81c58355 252 'multi-user.target.wants/ graphical.target.wants/ rescue.target.wants/'],
f5e65279 253 ['systemd-update-utmp.service', 'ENABLE_UTMP',
81c58355 254 'sysinit.target.wants/'],
52ad194e 255 ['systemd-user-sessions.service', 'HAVE_PAM',
81c58355
MB
256 'multi-user.target.wants/'],
257 ['systemd-vconsole-setup.service', 'ENABLE_VCONSOLE'],
a10f5d05 258 ['systemd-volatile-root.service', 'ENABLE_INITRD'],
46cdbd49
BR
259 ['systemd-repart.service', 'ENABLE_REPART',
260 'sysinit.target.wants/ initrd-root-fs.target.wants/'],
b012e921 261 ['user-runtime-dir@.service', ''],
f5e65279 262 ['user@.service', ''],
086111aa
LB
263 ['systemd-pcrphase-initrd.service', 'HAVE_GNU_EFI HAVE_OPENSSL HAVE_TPM2 ENABLE_INITRD',
264 'initrd.target.wants/'],
265 ['systemd-pcrphase-sysinit.service', 'HAVE_GNU_EFI HAVE_OPENSSL HAVE_TPM2',
266 'sysinit.target.wants/'],
267 ['systemd-pcrphase.service', 'HAVE_GNU_EFI HAVE_OPENSSL HAVE_TPM2',
268 'sysinit.target.wants/'],
81c58355
MB
269]
270
3a6ce677
BR
271add_wants = []
272
81c58355
MB
273foreach tuple : in_units
274 file = tuple[0]
275
276 # we do this here because install_data does not accept custom_target output
277 conds = tuple[1].split(' ')
f5e65279
MB
278 install = ((conds.get(0, '') == '' or conf.get(conds[0]) == 1) and
279 (conds.get(1, '') == '' or conf.get(conds[1]) == 1))
81c58355 280
8b3d4ff0 281 custom_target(
81c58355 282 file,
8b3d4ff0 283 input : file + '.in',
81c58355 284 output : file,
8f232108 285 command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
81c58355
MB
286 install : install,
287 install_dir : systemunitdir)
288
289 if install and tuple.length() > 2
290 foreach target : tuple[2].split()
3a6ce677 291 add_wants += [systemunitdir, target, file]
81c58355
MB
292 endforeach
293 endif
294endforeach
295
81c58355
MB
296foreach tuple : units
297 file = tuple[0]
298 input = tuple.get(3, file)
299
300 conds = tuple[1].split(' ')
f5e65279
MB
301 install = ((conds.get(0, '') == '' or conf.get(conds[0]) == 1) and
302 (conds.get(1, '') == '' or conf.get(conds[1]) == 1))
81c58355
MB
303
304 if install
305 install_data(input,
306 install_dir : systemunitdir)
307
308 if tuple.length() > 2
309 foreach target : tuple[2].split()
3a6ce677 310 add_wants += [systemunitdir, target, file]
81c58355
MB
311 endforeach
312 endif
313 endif
314endforeach
315
3a6ce677
BR
316meson.add_install_script('meson-add-wants.sh', add_wants)
317
b012e921
MB
318install_data('user-.slice.d/10-defaults.conf',
319 install_dir : systemunitdir + '/user-.slice.d')
320
086111aa
LB
321install_data('user@.service.d/10-login-barrier.conf',
322 install_dir : systemunitdir + '/user@.service.d')
323install_data('user@0.service.d/10-login-barrier.conf',
324 install_dir : systemunitdir + '/user@0.service.d')
325
81c58355
MB
326############################################################
327
a032b68d
MB
328if install_sysconfdir
329 meson.add_install_script(meson_make_symlink,
ea0999c9
MB
330 pkgsysconfdir / 'user',
331 sysconfdir / 'xdg/systemd/user')
a032b68d 332endif
97e5042f 333meson.add_install_script(meson_make_symlink,
ea0999c9
MB
334 dbussystemservicedir / 'org.freedesktop.systemd1.service',
335 dbussessionservicedir / 'org.freedesktop.systemd1.service')
f5e65279 336if conf.get('HAVE_SYSV_COMPAT') == 1
81c58355
MB
337 foreach i : [1, 2, 3, 4, 5]
338 meson.add_install_script(
339 'sh', '-c',
ea0999c9 340 mkdir_p.format(systemunitdir / 'runlevel@0@.target.wants'.format(i)))
81c58355
MB
341 endforeach
342endif
343
344subdir('user')