]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
units: add pcrphase units
authorLennart Poettering <lennart@poettering.net>
Fri, 16 Sep 2022 22:50:38 +0000 (00:50 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 22 Sep 2022 14:53:34 +0000 (16:53 +0200)
units/meson.build
units/systemd-pcrphase-initrd.service.in [new file with mode: 0644]
units/systemd-pcrphase.service.in [new file with mode: 0644]

index 2010a5566f030aad7e8de95982aca24deef1793f..072640e99253c19f4c91f73d4ab0105a2ad6ab64 100644 (file)
@@ -260,6 +260,10 @@ in_units = [
          'sysinit.target.wants/ initrd-root-fs.target.wants/'],
         ['user-runtime-dir@.service',            ''],
         ['user@.service',                        ''],
+        ['systemd-pcrphase-initrd.service',      'HAVE_GNU_EFI ENABLE_INITRD',
+         'initrd.target.wants/'],
+        ['systemd-pcrphase.service',             'HAVE_GNU_EFI',
+         'sysinit.target.wants/'],
 ]
 
 add_wants = []
diff --git a/units/systemd-pcrphase-initrd.service.in b/units/systemd-pcrphase-initrd.service.in
new file mode 100644 (file)
index 0000000..c1ad5ef
--- /dev/null
@@ -0,0 +1,24 @@
+#  SPDX-License-Identifier: LGPL-2.1-or-later
+#
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=TPM2 PCR Barrier (initrd)
+Documentation=man:systemd-pcrphase-initrd.service(8)
+DefaultDependencies=no
+Conflicts=shutdown.target initrd-switch-root.target
+Before=sysinit.target cryptsetup-pre.target cryptsetup.target shutdown.target initrd-switch-root.target systemd-sysext.service
+AssertPathExists=/etc/initrd-release
+ConditionSecurity=tpm2
+ConditionPathExists=/sys/firmware/efi/efivars/StubPcrKernelImage-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase enter-initrd
+ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase leave-initrd
diff --git a/units/systemd-pcrphase.service.in b/units/systemd-pcrphase.service.in
new file mode 100644 (file)
index 0000000..1ef8ed6
--- /dev/null
@@ -0,0 +1,23 @@
+#  SPDX-License-Identifier: LGPL-2.1-or-later
+#
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=TPM2 PCR Barrier (Host)
+Documentation=man:systemd-pcrphase.service(8)
+After=remote-fs.target remote-cryptsetup.target
+Before=systemd-user-sessions.service
+AssertPathExists=!/etc/initrd-release
+ConditionSecurity=tpm2
+ConditionPathExists=/sys/firmware/efi/efivars/StubPcrKernelImage-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase ready
+ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase shutdown