1:255.13-alt1
[systemd_ALT.git] / units / meson.build
blobe7bfb7f838f95246c8a81a6075d4721ce829b8ca
1 # SPDX-License-Identifier: LGPL-2.1-or-later
3 with_runlevels = conf.get('HAVE_SYSV_COMPAT') == 1
5 units = [
6         { 'file' : 'basic.target' },
7         { 'file' : 'blockdev@.target' },
8         { 'file' : 'bluetooth.target' },
9         { 'file' : 'boot-complete.target' },
10         { 'file' : 'console-getty.service.in' },
11         { 'file' : 'container-getty@.service.in' },
12         {
13           'file' : 'cryptsetup-pre.target',
14           'conditions' : ['HAVE_LIBCRYPTSETUP'],
15         },
16         {
17           'file' : 'cryptsetup.target',
18           'conditions' : ['HAVE_LIBCRYPTSETUP'],
19           'symlinks' : ['sysinit.target.wants/'],
20         },
21         { 'file' : 'debug-shell.service.in' },
22         {
23           'file' : 'dev-hugepages.mount',
24           'symlinks' : ['sysinit.target.wants/'],
25         },
26         {
27           'file' : 'dev-mqueue.mount',
28           'symlinks' : ['sysinit.target.wants/'],
29         },
30         { 'file' : 'emergency.service.in' },
31         { 'file' : 'emergency.target' },
32         { 'file' : 'exit.target' },
33         { 'file' : 'factory-reset.target' },
34         { 'file' : 'final.target' },
35         { 'file' : 'first-boot-complete.target' },
36         { 'file' : 'getty-pre.target' },
37         {
38           'file' : 'getty.target',
39           'symlinks' : ['multi-user.target.wants/'],
40         },
41         {
42           'file' : 'getty@.service.in',
43           'symlinks' : ['autovt@.service'],
44         },
45         {
46           'file' : 'graphical.target',
47           'symlinks' : ['default.target'] + (with_runlevels ? ['runlevel5.target'] : []),
48         },
49         { 'file' : 'halt.target' },
50         {
51           'file' : 'hibernate.target',
52           'conditions' : ['ENABLE_HIBERNATE'],
53         },
54         {
55           'file' : 'hybrid-sleep.target',
56           'conditions' : ['ENABLE_HIBERNATE'],
57         },
58         {
59           'file' : 'systemd-battery-check.service.in',
60           'conditions' : ['ENABLE_INITRD'],
61           'symlinks' : ['initrd.target.wants/'],
62         },
63         {
64           'file' : 'systemd-bsod.service.in',
65           'conditions' : ['HAVE_QRENCODE', 'ENABLE_INITRD'],
66           'symlinks' : ['initrd.target.wants/'],
67         },
68         {
69           'file' : 'initrd-cleanup.service',
70           'conditions' : ['ENABLE_INITRD'],
71         },
72         {
73           'file' : 'initrd-fs.target',
74           'conditions' : ['ENABLE_INITRD'],
75         },
76         {
77           'file' : 'initrd-parse-etc.service.in',
78           'conditions' : ['ENABLE_INITRD'],
79         },
80         {
81           'file' : 'initrd-root-device.target',
82           'conditions' : ['ENABLE_INITRD'],
83         },
84         {
85           'file' : 'initrd-root-fs.target',
86           'conditions' : ['ENABLE_INITRD'],
87         },
88         {
89           'file' : 'initrd-switch-root.service',
90           'conditions' : ['ENABLE_INITRD'],
91         },
92         {
93           'file' : 'initrd-switch-root.target',
94           'conditions' : ['ENABLE_INITRD'],
95         },
96         {
97           'file' : 'initrd-udevadm-cleanup-db.service',
98           'conditions' : ['ENABLE_INITRD'],
99         },
100         {
101           'file' : 'initrd-usr-fs.target',
102           'conditions' : ['ENABLE_INITRD'],
103         },
104         {
105           'file' : 'initrd.target',
106           'conditions' : ['ENABLE_INITRD'],
107         },
108         {
109           'file' : 'integritysetup-pre.target',
110           'conditions' : ['HAVE_LIBCRYPTSETUP'],
111         },
112         {
113           'file' : 'integritysetup.target',
114           'conditions' : ['HAVE_LIBCRYPTSETUP'],
115           'symlinks' : ['sysinit.target.wants/'],
116         },
117         { 'file' : 'kexec.target' },
118         {
119           'file' : 'kmod-static-nodes.service.in',
120           'conditions' : ['HAVE_KMOD', 'ENABLE_TMPFILES'],
121           'symlinks' : ['sysinit.target.wants/'],
122         },
123         {
124           'file' : 'ldconfig.service',
125           'conditions' : ['ENABLE_LDCONFIG'],
126           'symlinks' : ['sysinit.target.wants/'],
127         },
128         { 'file' : 'local-fs-pre.target' },
129         { 'file' : 'local-fs.target' },
130         {
131           'file' : 'machine.slice',
132           'conditions' : ['ENABLE_MACHINED'],
133         },
134         {
135           'file' : 'machines.target',
136           'conditions' : ['ENABLE_MACHINED'],
137         },
138         { 'file' : 'modprobe@.service' },
139         {
140           'file' : 'multi-user.target',
141           'symlinks' : with_runlevels ? ['runlevel2.target', 'runlevel3.target', 'runlevel4.target'] : [],
142         },
143         { 'file' : 'network-online.target' },
144         { 'file' : 'network-pre.target' },
145         { 'file' : 'network.target' },
146         { 'file' : 'nss-lookup.target' },
147         { 'file' : 'nss-user-lookup.target' },
148         { 'file' : 'paths.target' },
149         {
150           'file' : 'poweroff.target',
151           'symlinks' : with_runlevels ? ['runlevel0.target'] : [],
152         },
153         { 'file' : 'printer.target' },
154         {
155           'file' : 'proc-sys-fs-binfmt_misc.automount',
156           'conditions' : ['ENABLE_BINFMT'],
157           'symlinks' : ['sysinit.target.wants/'],
158         },
159         {
160           'file' : 'proc-sys-fs-binfmt_misc.mount',
161           'conditions' : ['ENABLE_BINFMT'],
162         },
163         {
164           'file' : 'quotaon.service.in',
165           'conditions' : ['ENABLE_QUOTACHECK'],
166         },
167         {
168           'file' : 'rc-local.service.in',
169           'conditions' : ['HAVE_SYSV_COMPAT'],
170         },
171         {
172           'file' : 'reboot.target',
173           'symlinks' : ['ctrl-alt-del.target'] + (with_runlevels ? ['runlevel6.target'] : []),
174         },
175         {
176           'file' : 'remote-cryptsetup.target',
177           'conditions' : ['HAVE_LIBCRYPTSETUP'],
178           'symlinks' : ['initrd-root-device.target.wants/'],
179         },
180         { 'file' : 'remote-fs-pre.target' },
181         { 'file' : 'remote-fs.target' },
182         {
183           'file' : 'remote-veritysetup.target',
184           'conditions' : ['HAVE_LIBCRYPTSETUP'],
185           'symlinks' : ['initrd-root-device.target.wants/'],
186         },
187         { 'file' : 'rescue.service.in' },
188         {
189           'file' : 'rescue.target',
190           'symlinks' : with_runlevels ? ['runlevel1.target'] : [],
191         },
192         { 'file' : 'rpcbind.target' },
193         { 'file' : 'serial-getty@.service.in' },
194         { 'file' : 'shutdown.target' },
195         { 'file' : 'sigpwr.target' },
196         { 'file' : 'sleep.target' },
197         { 'file' : 'slices.target' },
198         { 'file' : 'smartcard.target' },
199         { 'file' : 'sockets.target' },
200         { 'file' : 'soft-reboot.target' },
201         { 'file' : 'sound.target' },
202         {
203           'file' : 'suspend-then-hibernate.target',
204           'conditions' : ['ENABLE_HIBERNATE'],
205         },
206         { 'file' : 'suspend.target' },
207         { 'file' : 'swap.target' },
208         {
209           'file' : 'sys-fs-fuse-connections.mount',
210           'symlinks' : ['sysinit.target.wants/'],
211         },
212         {
213           'file' : 'sys-kernel-config.mount',
214           'symlinks' : ['sysinit.target.wants/'],
215         },
216         {
217           'file' : 'sys-kernel-debug.mount',
218           'symlinks' : ['sysinit.target.wants/'],
219         },
220         {
221           'file' : 'sys-kernel-tracing.mount',
222           'symlinks' : ['sysinit.target.wants/'],
223         },
224         { 'file' : 'sysinit.target' },
225         { 'file' : 'syslog.socket' },
226         {
227           'file' : 'system-systemd\\x2dcryptsetup.slice',
228           'conditions' : ['HAVE_LIBCRYPTSETUP'],
229         },
230         {
231           'file' : 'system-systemd\\x2dveritysetup.slice',
232           'conditions' : ['HAVE_LIBCRYPTSETUP'],
233         },
234         { 'file' : 'system-update-cleanup.service' },
235         { 'file' : 'system-update-pre.target' },
236         { 'file' : 'system-update.target' },
237         {
238           'file' : 'systemd-ask-password-console.path',
239           'symlinks' : ['sysinit.target.wants/'],
240         },
241         { 'file' : 'systemd-ask-password-console.service' },
242         {
243           'file' : 'systemd-ask-password-wall.path',
244           'symlinks' : ['multi-user.target.wants/'],
245         },
246         { 'file' : 'systemd-ask-password-wall.service' },
247         {
248           'file' : 'systemd-backlight@.service.in',
249           'conditions' : ['ENABLE_BACKLIGHT'],
250         },
251         {
252           'file' : 'systemd-binfmt.service.in',
253           'conditions' : ['ENABLE_BINFMT'],
254           'symlinks' : ['sysinit.target.wants/'],
255         },
256         {
257           'file' : 'systemd-bless-boot.service.in',
258           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_BLKID'],
259         },
260         { 'file' : 'systemd-boot-check-no-failures.service.in' },
261         {
262           'file' : 'systemd-boot-random-seed.service',
263           'conditions' : ['ENABLE_BOOTLOADER'],
264           'symlinks' : ['sysinit.target.wants/'],
265         },
266         {
267           'file' : 'systemd-boot-update.service',
268           'conditions' : ['ENABLE_BOOTLOADER'],
269         },
270         {
271           'file' : 'systemd-confext.service',
272           'conditions' : ['ENABLE_SYSEXT'],
273         },
274         {
275           'file' : 'systemd-coredump.socket',
276           'conditions' : ['ENABLE_COREDUMP'],
277           'symlinks' : ['sockets.target.wants/'],
278         },
279         {
280           'file' : 'systemd-coredump@.service.in',
281           'conditions' : ['ENABLE_COREDUMP'],
282         },
283         { 'file' : 'systemd-exit.service' },
284         {
285           'file' : 'systemd-firstboot.service',
286           'conditions' : ['ENABLE_FIRSTBOOT'],
287           'symlinks' : ['sysinit.target.wants/'],
288         },
289         { 'file' : 'systemd-fsck-root.service.in' },
290         { 'file' : 'systemd-fsck@.service.in' },
291         { 'file' : 'systemd-growfs-root.service.in' },
292         { 'file' : 'systemd-growfs@.service.in' },
293         { 'file' : 'systemd-halt.service' },
294         {
295           'file' : 'systemd-hibernate-resume.service.in',
296           'conditions' : ['ENABLE_HIBERNATE'],
297         },
298         {
299           'file' : 'systemd-hibernate.service.in',
300           'conditions' : ['ENABLE_HIBERNATE'],
301         },
302         {
303           'file' : 'systemd-homed-activate.service',
304           'conditions' : ['ENABLE_HOMED'],
305         },
306         {
307           'file' : 'systemd-homed.service.in',
308           'conditions' : ['ENABLE_HOMED'],
309         },
310         {
311           'file' : 'systemd-hostnamed.service.in',
312           'conditions' : ['ENABLE_HOSTNAMED'],
313           'symlinks' : ['dbus-org.freedesktop.hostname1.service'],
314         },
315         {
316           'file' : 'systemd-hwdb-update.service.in',
317           'conditions' : ['ENABLE_HWDB'],
318           'symlinks' : ['sysinit.target.wants/'],
319         },
320         {
321           'file' : 'systemd-hybrid-sleep.service.in',
322           'conditions' : ['ENABLE_HIBERNATE'],
323         },
324         {
325           'file' : 'systemd-importd.service.in',
326           'conditions' : ['ENABLE_IMPORTD'],
327           'symlinks' : ['dbus-org.freedesktop.import1.service'],
328         },
329         {
330           'file' : 'systemd-initctl.service.in',
331           'conditions' : ['HAVE_SYSV_COMPAT'],
332         },
333         {
334           'file' : 'systemd-initctl.socket',
335           'conditions' : ['HAVE_SYSV_COMPAT'],
336           'symlinks' : ['sockets.target.wants/'],
337         },
338         {
339           'file' : 'systemd-journal-catalog-update.service',
340           'symlinks' : ['sysinit.target.wants/'],
341         },
342         {
343           'file' : 'systemd-journal-flush.service',
344           'symlinks' : ['sysinit.target.wants/'],
345         },
346         {
347           'file' : 'systemd-journal-gatewayd.service.in',
348           'conditions' : ['ENABLE_REMOTE', 'HAVE_MICROHTTPD'],
349         },
350         {
351           'file' : 'systemd-journal-gatewayd.socket',
352           'conditions' : ['ENABLE_REMOTE', 'HAVE_MICROHTTPD'],
353         },
354         {
355           'file' : 'systemd-journal-remote.service.in',
356           'conditions' : ['ENABLE_REMOTE', 'HAVE_MICROHTTPD'],
357         },
358         {
359           'file' : 'systemd-journal-remote.socket',
360           'conditions' : ['ENABLE_REMOTE', 'HAVE_MICROHTTPD'],
361         },
362         {
363           'file' : 'systemd-journal-upload.service.in',
364           'conditions' : ['ENABLE_REMOTE', 'HAVE_LIBCURL'],
365         },
366         { 'file' : 'systemd-journald-audit.socket' },
367         {
368           'file' : 'systemd-journald-dev-log.socket',
369           'symlinks' : ['sockets.target.wants/'],
370         },
371         { 'file' : 'systemd-journald-varlink@.socket' },
372         {
373           'file' : 'systemd-journald.service.in',
374           'symlinks' : ['sysinit.target.wants/'],
375         },
376         {
377           'file' : 'systemd-journald.socket',
378           'symlinks' : ['sockets.target.wants/'],
379         },
380         { 'file' : 'systemd-journald@.service.in' },
381         { 'file' : 'systemd-journald@.socket' },
382         { 'file' : 'systemd-kexec.service' },
383         {
384           'file' : 'systemd-localed.service.in',
385           'conditions' : ['ENABLE_LOCALED'],
386           'symlinks' : ['dbus-org.freedesktop.locale1.service'],
387         },
388         {
389           'file' : 'systemd-logind.service.in',
390           'conditions' : ['ENABLE_LOGIND'],
391           'symlinks' : ['multi-user.target.wants/', 'dbus-org.freedesktop.login1.service'],
392         },
393         {
394           'file' : 'systemd-machine-id-commit.service',
395           'symlinks' : ['sysinit.target.wants/'],
396         },
397         {
398           'file' : 'systemd-machined.service.in',
399           'conditions' : ['ENABLE_MACHINED'],
400           'symlinks' : ['dbus-org.freedesktop.machine1.service'],
401         },
402         {
403           'file' : 'systemd-modules-load.service.in',
404           'conditions' : ['HAVE_KMOD'],
405           'symlinks' : ['sysinit.target.wants/'],
406         },
407         { 'file' : 'systemd-network-generator.service.in' },
408         {
409           'file' : 'systemd-networkd-wait-online.service.in',
410           'conditions' : ['ENABLE_NETWORKD'],
411         },
412         {
413           'file' : 'systemd-networkd-wait-online@.service.in',
414           'conditions' : ['ENABLE_NETWORKD'],
415         },
416         {
417           'file' : 'systemd-networkd.service.in',
418           'conditions' : ['ENABLE_NETWORKD'],
419         },
420         {
421           'file' : 'systemd-networkd.socket',
422           'conditions' : ['ENABLE_NETWORKD'],
423         },
424         { 'file' : 'systemd-nspawn@.service.in' },
425         {
426           'file' : 'systemd-oomd.service.in',
427           'conditions' : ['ENABLE_OOMD'],
428         },
429         {
430           'file' : 'systemd-oomd.socket',
431           'conditions' : ['ENABLE_OOMD'],
432         },
433         {
434           'file' : 'systemd-pcrextend@.service.in',
435           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
436         },
437         {
438           'file' : 'systemd-pcrextend.socket',
439           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
440           'symlinks' : ['sockets.target.wants/'],
441         },
442         {
443           'file' : 'systemd-pcrfs-root.service.in',
444           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
445         },
446         {
447           'file' : 'systemd-pcrfs@.service.in',
448           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
449         },
450         {
451           'file' : 'systemd-pcrmachine.service.in',
452           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
453           'symlinks' : ['sysinit.target.wants/'],
454         },
455         {
456           'file' : 'systemd-pcrphase-initrd.service.in',
457           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2', 'ENABLE_INITRD'],
458           'symlinks' : ['initrd.target.wants/'],
459         },
460         {
461           'file' : 'systemd-pcrphase-sysinit.service.in',
462           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
463           'symlinks' : ['sysinit.target.wants/'],
464         },
465         {
466           'file' : 'systemd-pcrphase.service.in',
467           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
468           'symlinks' : ['sysinit.target.wants/'],
469         },
470         {
471           'file' : 'systemd-tpm2-setup.service.in',
472           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
473           'symlinks' : ['sysinit.target.wants/'],
474         },
475         {
476           'file' : 'systemd-tpm2-setup-early.service.in',
477           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
478           'symlinks' : ['sysinit.target.wants/'],
479         },
480         {
481           'file' : 'systemd-pcrlock-make-policy.service.in',
482           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
483         },
484         {
485           'file' : 'systemd-pcrlock-secureboot-policy.service.in',
486           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
487         },
488         {
489           'file' : 'systemd-pcrlock-secureboot-authority.service.in',
490           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
491         },
492         {
493           'file' : 'systemd-pcrlock-file-system.service.in',
494           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
495         },
496         {
497           'file' : 'systemd-pcrlock-machine-id.service.in',
498           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
499         },
500         {
501           'file' : 'systemd-pcrlock-firmware-code.service.in',
502           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
503         },
504         {
505           'file' : 'systemd-pcrlock-firmware-config.service.in',
506           'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
507         },
508         {
509           'file' : 'systemd-portabled.service.in',
510           'conditions' : ['ENABLE_PORTABLED'],
511           'symlinks' : ['dbus-org.freedesktop.portable1.service'],
512         },
513         { 'file' : 'systemd-poweroff.service' },
514         {
515           'file' : 'systemd-pstore.service.in',
516           'conditions' : ['ENABLE_PSTORE'],
517         },
518         {
519           'file' : 'systemd-quotacheck.service.in',
520           'conditions' : ['ENABLE_QUOTACHECK'],
521         },
522         {
523           'file' : 'systemd-random-seed.service.in',
524           'conditions' : ['ENABLE_RANDOMSEED'],
525           'symlinks' : ['sysinit.target.wants/'],
526         },
527         { 'file' : 'systemd-reboot.service' },
528         { 'file' : 'systemd-remount-fs.service.in' },
529         {
530           'file' : 'systemd-repart.service.in',
531           'conditions' : ['ENABLE_REPART'],
532           'symlinks' : ['sysinit.target.wants/', 'initrd-root-fs.target.wants/'],
533         },
534         {
535           'file' : 'systemd-resolved.service.in',
536           'conditions' : ['ENABLE_RESOLVE'],
537         },
538         {
539           'file' : 'systemd-rfkill.service.in',
540           'conditions' : ['ENABLE_RFKILL'],
541         },
542         {
543           'file' : 'systemd-rfkill.socket',
544           'conditions' : ['ENABLE_RFKILL'],
545         },
546         { 'file' : 'systemd-soft-reboot.service' },
547         {
548           'file' : 'systemd-suspend-then-hibernate.service.in',
549           'conditions' : ['ENABLE_HIBERNATE'],
550         },
551         { 'file' : 'systemd-suspend.service.in' },
552         {
553           'file' : 'systemd-sysctl.service.in',
554           'symlinks' : ['sysinit.target.wants/'],
555         },
556         {
557           'file' : 'systemd-sysext.service',
558           'conditions' : ['ENABLE_SYSEXT'],
559         },
560         {
561           'file' : 'systemd-sysext.socket',
562           'conditions' : ['ENABLE_SYSEXT'],
563           'symlinks' : ['sockets.target.wants/'],
564         },
565         {
566           'file' : 'systemd-sysext@.service',
567           'conditions' : ['ENABLE_SYSEXT'],
568         },
569         {
570           'file' : 'systemd-sysupdate-reboot.service.in',
571           'conditions' : ['ENABLE_SYSUPDATE'],
572         },
573         {
574           'file' : 'systemd-sysupdate-reboot.timer',
575           'conditions' : ['ENABLE_SYSUPDATE'],
576         },
577         {
578           'file' : 'systemd-sysupdate.service.in',
579           'conditions' : ['ENABLE_SYSUPDATE'],
580         },
581         {
582           'file' : 'systemd-sysupdate.timer',
583           'conditions' : ['ENABLE_SYSUPDATE'],
584         },
585         {
586           'file' : 'systemd-sysusers.service',
587           'conditions' : ['ENABLE_SYSUSERS'],
588           'symlinks' : ['sysinit.target.wants/'],
589         },
590         {
591           'file' : 'systemd-storagetm.service.in',
592           'conditions' : ['ENABLE_STORAGETM'],
593         },
594         {
595           'file' : 'storage-target-mode.target',
596           'conditions' : ['ENABLE_STORAGETM'],
597         },
598         {
599           'file' : 'systemd-time-wait-sync.service.in',
600           'conditions' : ['ENABLE_TIMESYNCD'],
601         },
602         {
603           'file' : 'systemd-timedated.service.in',
604           'conditions' : ['ENABLE_TIMEDATED'],
605           'symlinks' : ['dbus-org.freedesktop.timedate1.service'],
606         },
607         {
608           'file' : 'systemd-timesyncd.service.in',
609           'conditions' : ['ENABLE_TIMESYNCD'],
610         },
611         {
612           'file' : 'systemd-tmpfiles-clean.service',
613           'conditions' : ['ENABLE_TMPFILES'],
614         },
615         {
616           'file' : 'systemd-tmpfiles-clean.timer',
617           'conditions' : ['ENABLE_TMPFILES'],
618           'symlinks' : ['timers.target.wants/'],
619         },
620         {
621           'file' : 'systemd-tmpfiles-setup-dev-early.service',
622           'conditions' : ['ENABLE_TMPFILES'],
623           'symlinks' : ['sysinit.target.wants/'],
624         },
625         {
626           'file' : 'systemd-tmpfiles-setup-dev.service',
627           'conditions' : ['ENABLE_TMPFILES'],
628           'symlinks' : ['sysinit.target.wants/'],
629         },
630         {
631           'file' : 'systemd-tmpfiles-setup.service',
632           'conditions' : ['ENABLE_TMPFILES'],
633           'symlinks' : ['sysinit.target.wants/'],
634         },
635         { 'file' : 'systemd-udev-settle.service' },
636         {
637           'file' : 'systemd-udev-trigger.service',
638           'symlinks' : ['sysinit.target.wants/'],
639         },
640         {
641           'file' : 'systemd-udevd-control.socket',
642           'symlinks' : ['sockets.target.wants/'],
643         },
644         {
645           'file' : 'systemd-udevd-kernel.socket',
646           'symlinks' : ['sockets.target.wants/'],
647         },
648         {
649           'file' : 'systemd-udevd.service.in',
650           'symlinks' : ['sysinit.target.wants/'],
651         },
652         {
653           'file' : 'systemd-update-done.service.in',
654           'symlinks' : ['sysinit.target.wants/'],
655         },
656         {
657           'file' : 'systemd-update-utmp-runlevel.service.in',
658           'conditions' : ['ENABLE_UTMP', 'HAVE_SYSV_COMPAT'],
659           'symlinks' : ['multi-user.target.wants/', 'graphical.target.wants/', 'rescue.target.wants/'],
660         },
661         {
662           'file' : 'systemd-update-utmp.service.in',
663           'conditions' : ['ENABLE_UTMP'],
664           'symlinks' : ['sysinit.target.wants/'],
665         },
666         {
667           'file' : 'systemd-user-sessions.service.in',
668           'conditions' : ['HAVE_PAM'],
669           'symlinks' : ['multi-user.target.wants/'],
670         },
671         {
672           'file' : 'systemd-userdbd.service.in',
673           'conditions' : ['ENABLE_USERDB'],
674         },
675         {
676           'file' : 'systemd-userdbd.socket',
677           'conditions' : ['ENABLE_USERDB'],
678         },
679         {
680           'file' : 'systemd-vconsole-setup.service.in',
681           'conditions' : ['ENABLE_VCONSOLE'],
682         },
683         {
684           'file' : 'systemd-volatile-root.service.in',
685           'conditions' : ['ENABLE_INITRD'],
686         },
687         { 'file' : 'time-set.target' },
688         { 'file' : 'time-sync.target' },
689         { 'file' : 'timers.target' },
690         {
691           'file' : 'tmp.mount',
692           'symlinks' : ['local-fs.target.wants/'],
693         },
694         { 'file' : 'umount.target' },
695         { 'file' : 'usb-gadget.target' },
696         { 'file' : 'user-runtime-dir@.service.in' },
697         { 'file' : 'user.slice' },
698         { 'file' : 'user@.service.in' },
699         {
700           'file' : 'var-lib-machines.mount',
701           'conditions' : ['ENABLE_MACHINED'],
702           'symlinks' : ['remote-fs.target.wants/', 'machines.target.wants/'],
703         },
704         {
705           'file' : 'veritysetup-pre.target',
706           'conditions' : ['HAVE_LIBCRYPTSETUP'],
707         },
708         {
709           'file' : 'veritysetup.target',
710           'conditions' : ['HAVE_LIBCRYPTSETUP'],
711           'symlinks' : ['sysinit.target.wants/'],
712         },
715 foreach unit : units
716         source = unit.get('file')
718         if source.endswith('.in')
719                 needs_jinja = true
720                 name = source.substring(0, -3)
721                 assert(name + '.in' == source)
722         else
723                 needs_jinja = false
724                 name = source
725         endif
726         source = files(source)
728         install = true
729         foreach cond : unit.get('conditions', [])
730                 if conf.get(cond) != 1
731                         install = false
732                         break
733                 endif
734         endforeach
736         if needs_jinja
737                 custom_target(
738                         name,
739                         input : source,
740                         output : name,
741                         command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
742                         install : install,
743                         install_dir : systemunitdir)
744         elif install
745                 install_data(source,
746                              install_dir : systemunitdir)
747         endif
749         if install
750                 foreach target : unit.get('symlinks', [])
751                         if target.endswith('/')
752                                 install_emptydir(systemunitdir / target)
753                                 meson.add_install_script(sh, '-c',
754                                                          ln_s.format(systemunitdir / name,
755                                                                      systemunitdir / target / name))
756                         else
757                                 meson.add_install_script(sh, '-c',
758                                                          ln_s.format(systemunitdir / name,
759                                                                      systemunitdir / target))
760                         endif
761                 endforeach
762         endif
763 endforeach
765 install_data('user-.slice.d/10-defaults.conf',
766              install_dir : systemunitdir + '/user-.slice.d')
768 install_data('user@.service.d/10-login-barrier.conf',
769              install_dir : systemunitdir + '/user@.service.d')
770 install_data('user@0.service.d/10-login-barrier.conf',
771              install_dir : systemunitdir + '/user@0.service.d')
773 ############################################################
775 install_emptydir(dbussessionservicedir)
776 meson.add_install_script(sh, '-c',
777                          ln_s.format(dbussystemservicedir / 'org.freedesktop.systemd1.service',
778                                      dbussessionservicedir / 'org.freedesktop.systemd1.service'))
780 if conf.get('HAVE_SYSV_COMPAT') == 1
781         foreach i : [1, 2, 3, 4, 5]
782                 install_emptydir(systemunitdir / 'runlevel@0@.target.wants'.format(i))
783         endforeach
784 endif
786 subdir('user')