Lennart Poettering [Fri, 20 Jan 2023 21:21:17 +0000 (22:21 +0100)]
Merge pull request #26131 from poettering/bootctl-help-text-fix
bootctl --help fixes
Lennart Poettering [Mon, 16 Jan 2023 13:06:23 +0000 (14:06 +0100)]
journal: use compound initializors at one more place
Lennart Poettering [Thu, 19 Jan 2023 19:27:26 +0000 (20:27 +0100)]
journal: modernize match_make_string()
Lennart Poettering [Thu, 19 Jan 2023 10:35:36 +0000 (11:35 +0100)]
journalctl: don't convert between strv/Set for each log line
If output fields are specified, let's store this in a Set right-away,
instead of converting between strv and Set again and again for each
line.
This is not only faster, but also simpler and shorter.
Lennart Poettering [Thu, 19 Jan 2023 21:44:11 +0000 (22:44 +0100)]
logs-show: use json_variant_unref_many() where appropriate
Lennart Poettering [Fri, 20 Jan 2023 20:45:28 +0000 (21:45 +0100)]
Merge pull request #26126 from poettering/format-table-date
hostnamectl: show firmware date as date only, with now time
Lennart Poettering [Fri, 20 Jan 2023 17:40:57 +0000 (18:40 +0100)]
bootctl: remove space that should not be there
Lennart Poettering [Fri, 20 Jan 2023 17:36:31 +0000 (18:36 +0100)]
bootctl: split out boot loader spec + boot loader interface commands in --help text
grub (at least on fedora) nowadays implements the boot loader spec, but
not the boot loader interface. Hence let's split out the commands
specific to each in two groups in the --help text. This way the first
group just covers boot lodaer spec stuff (i.e. stuff on disk in the
ESP/XBOOTLDR partition). And the other covers talking to the boot loader
via EFI var.
Lennart Poettering [Fri, 20 Jan 2023 17:30:47 +0000 (18:30 +0100)]
bootctl: realign column in --help text
for some reason the descriptions of the switches and the commands
weren't aligned, one space off. Fix that.
Lennart Poettering [Fri, 20 Jan 2023 17:30:06 +0000 (18:30 +0100)]
bootctl: change section title for kernel image commands
Let's call them kernel *images*, not just *kernels*.
Lennart Poettering [Fri, 20 Jan 2023 17:29:13 +0000 (18:29 +0100)]
bootctl: drop full stop at end of --help texts
We never do that, don't do so here either.
Lennart Poettering [Fri, 20 Jan 2023 15:52:39 +0000 (16:52 +0100)]
hostnamectl: show firmware date with date only, without time
The source (usually DMI/SMBIOS) only has 24h granularity, hence don't
show time as well, it's useless.
Lennart Poettering [Fri, 20 Jan 2023 12:47:48 +0000 (13:47 +0100)]
format-table: add cell type for showing date only timestamps
Lennart Poettering [Fri, 20 Jan 2023 12:47:11 +0000 (13:47 +0100)]
time-util: add timestamp output style that shows dates only, no times
Lennart Poettering [Fri, 20 Jan 2023 15:54:22 +0000 (16:54 +0100)]
time-util: condition size check based on utc mode
Lennart Poettering [Fri, 20 Jan 2023 12:46:40 +0000 (13:46 +0100)]
time-util: simplify formatting of UNIX timestamps
Lennart Poettering [Fri, 20 Jan 2023 12:45:38 +0000 (13:45 +0100)]
time-util: move buffer size check after handling of UNIX timestamp style
Lennart Poettering [Fri, 20 Jan 2023 12:44:26 +0000 (13:44 +0100)]
time-util: if a date is unrepresentable, honour style to generate XXX string
Lennart Poettering [Fri, 20 Jan 2023 12:16:19 +0000 (13:16 +0100)]
time-util: use IN_SET() more
Jan Janssen [Fri, 20 Jan 2023 13:11:54 +0000 (14:11 +0100)]
boot: Properly strip EFI binaries
Removing debugging related sections is apparently not enough to truely
strip a (PE) binary.
Better late than never. It gets rid of this pesky warning from sbsign:
warning: data remaining[174080 vs 193173]: gaps between PE/COFF sections?
Lennart Poettering [Fri, 20 Jan 2023 16:28:13 +0000 (17:28 +0100)]
Merge pull request #26114 from bluca/sd_login_pidfd
sd-login: add sd_pidfd_* APIs
Lennart Poettering [Fri, 20 Jan 2023 12:14:42 +0000 (13:14 +0100)]
string-util: add new strdupcspn()/strdupspn()
These combine strndup() + strspn()/strcspn() into one.
There are a bunch of strndupa() calls that could use similar treatment
(or should be converted to strdup[c]spn(), but this commit doesn't
bother with that.
Luca Boccassi [Fri, 20 Jan 2023 15:01:03 +0000 (15:01 +0000)]
Merge pull request #23309 from DaanDeMeyer/log-context
basic: Add log context
Gerd Hoffmann [Fri, 20 Jan 2023 12:30:48 +0000 (13:30 +0100)]
bootctl: add kernel-inspect to --help text
Waltibaba [Fri, 20 Jan 2023 07:38:13 +0000 (08:38 +0100)]
hwdb: Add Chuwi Hi10X (N4120 version) iio matrix
There is a later model version of the Chuwi Hi10X that has significantly changed components compared to the existing hwdb one. Differentiator (on Chuwi forums, in thesofproject, etc.) is the N4120 rather than the N4100 processor.
The svn and pn seem to be identical, my Chuwi Hi10X matches with the old model except for the changed KIOX000A* iio sensor.
With the added ACCEL_MOUNT_MATRIX, my device works on gnome and has the correct (right-up) output in monitor-sensors.
Daan De Meyer [Thu, 19 Jan 2023 12:14:29 +0000 (13:14 +0100)]
ukify: Downgrade required python version to 3.9
Luca Boccassi [Thu, 19 Jan 2023 23:20:55 +0000 (23:20 +0000)]
sd-login: add sd_pidfd_* APIs
Same as the sd_pid_* counterparts, but take a pid file descriptor instead of
a pid, so that the callers can be sure that the returned values are really
about the process they asked for, and not about a recycled PID.
Luca Boccassi [Fri, 20 Jan 2023 12:13:22 +0000 (12:13 +0000)]
process-util: add helper to verify a pid via its pidfd
Luca Boccassi [Fri, 20 Jan 2023 11:00:53 +0000 (11:00 +0000)]
Merge pull request #26115 from yuwata/test-fix-memleak-fdleak
test: fix memleak and fd leak
Yu Watanabe [Fri, 20 Jan 2023 06:32:16 +0000 (15:32 +0900)]
tree-wide: fix typo
Yu Watanabe [Fri, 20 Jan 2023 05:54:44 +0000 (14:54 +0900)]
test-unit-name: fix fd leak
Fixes an issue reported at https://github.com/systemd/systemd/issues/22576#issuecomment-
1396774385.
Yu Watanabe [Fri, 20 Jan 2023 05:37:12 +0000 (14:37 +0900)]
test-ndisc: fix memleak and fd leak
Fixes issues reported at #22576.
Luca Boccassi [Thu, 19 Jan 2023 21:06:08 +0000 (21:06 +0000)]
Merge pull request #26105 from yuwata/network-config-parse-address-make-prefix-length-full
network: make config_parse_address() assume full prefix length
Michal Koutný [Wed, 18 Jan 2023 22:20:31 +0000 (23:20 +0100)]
core: mount namespaces: Remove auxiliary bind mounts directory after unit termination
Unit that requires its own mount namespace creates a temporary directory
to implement dynamic bind mounts (org.freedesktop.systemd1.Manager.BindMountUnit).
However, this directory is never removed and they will accumulate for
each unique unit (e.g. templated units of systemd-coredump@).
Attach the auxiliary runtime directory existence to lifetime of other
"runtime" only per-unit directories.
Lennart Poettering [Thu, 19 Jan 2023 20:57:39 +0000 (21:57 +0100)]
Merge pull request #25977 from YHNdnzj/PropagatesStopTo-fix-restart
core: propagate stop too if restart is issued
Jelle van der Waa [Fri, 13 Jan 2023 16:33:12 +0000 (17:33 +0100)]
hostnamed: expose FirmwareDate as timestamp in dbus
Offer the firmware date as an epoch instead of the literal DMI string.
Closes #25679
Luca Boccassi [Thu, 19 Jan 2023 20:21:52 +0000 (20:21 +0000)]
Merge pull request #26103 from lnussel/bootctl
bootctl: unlink and cleanup functions
Daan De Meyer [Thu, 19 Jan 2023 13:24:40 +0000 (14:24 +0100)]
mkosi: Rename the configuration files to use ".conf" as extension
edupont [Thu, 19 Jan 2023 13:24:56 +0000 (14:24 +0100)]
Fix typo in parameter name
Mike Yuan [Sun, 8 Jan 2023 15:16:22 +0000 (23:16 +0800)]
core: propagate stop too if restart is issued
The restart of a unit should also be considered as that
a stop job happens, and thus gets propagated to units
specified using PropagatesStopTo=.
Fixes #24068
Ludwig Nussel [Thu, 8 Dec 2022 15:27:31 +0000 (16:27 +0100)]
bootctl: unlink and cleanup functions
The unlink command removes an entry from the ESP including
referenced files that are not referenced in other entries. That is
useful eg to have multiple entries that use the same kernel with
different options.
The cleanup command removes all files that are not referenced by any
entry.
Sam James [Fri, 13 Jan 2023 05:17:56 +0000 (05:17 +0000)]
bpf: disable -fstack-protector in meson
In Gentoo, we recently started making Clang behave the same way as
our GCC, with -fstack-protector and some friends enabled by default.
SSP doesn't make sense for BPF, so disable it explicitly.
See also e.g. https://www.spinics.net/lists/netdev/msg556400.html.
Bug: https://bugs.gentoo.org/890004
Ludwig Nussel [Mon, 9 Jan 2023 16:58:57 +0000 (17:58 +0100)]
chase-symlinks: new chase_symlinks_and_unlink()
Yu Watanabe [Thu, 19 Jan 2023 12:27:24 +0000 (21:27 +0900)]
NEWS: mention that Address= assumes /32 or /128 prefix length if not specified
Yu Watanabe [Thu, 19 Jan 2023 12:20:24 +0000 (21:20 +0900)]
in-addr-util: drop unused mode to parse prefix length
Yu Watanabe [Thu, 19 Jan 2023 09:21:34 +0000 (18:21 +0900)]
network: assume prefix length is full address size
The commit
0f707207b9fc04d45ad176930cfefc77c0068545 enables strong
warning about missing prefix length in Address= setting.
The change was done in v241, and was about 4 years ago.
Let's drop the legacy assumption and make the parser consistent with
'ip address' command.
C.f. #11307.
Closes #26102.
Frantisek Sumsal [Thu, 19 Jan 2023 12:54:19 +0000 (13:54 +0100)]
test: update Ubuntu CI docs
Yu Watanabe [Tue, 17 Jan 2023 04:20:13 +0000 (13:20 +0900)]
network: do not enter failed state when received an invalid RA
Fixes the issue reported at https://github.com/systemd/systemd/issues/25891#issuecomment-
1368509262.
Yu Watanabe [Thu, 19 Jan 2023 12:21:52 +0000 (21:21 +0900)]
test-network: drop unused file
Ludwig Nussel [Wed, 18 Jan 2023 09:25:58 +0000 (10:25 +0100)]
meson: ukify depends on GNU_EFI
ukify is rather efi specific and the manpage is already conditional on
HAVE_GNU_EFI so make the program also depend on HAVE_GNU_EFI
Daan De Meyer [Wed, 18 Jan 2023 15:31:35 +0000 (16:31 +0100)]
testsuite-77: Fix race condition
Use a socket unit to make sure the socket exists before we start
the client that accesses it.
Luca Boccassi [Wed, 18 Jan 2023 22:24:39 +0000 (22:24 +0000)]
Merge pull request #23706 from medhefgo/efi-clang
boot: Add printf functions
William Roberts [Wed, 18 Jan 2023 14:45:53 +0000 (08:45 -0600)]
tpm2: add salt to pin
Add a salt to the pin and store it in the TPM2 LUKS header for future
this. This adds entropy to user supplied pins and helps brute forcing
the passphrase on the key residing in the TPM or brute forcing bind key
encrypted sessions with low entropy passphrases.
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
Signed-off-by: William Roberts <william.c.roberts@intel.com>
Luca Boccassi [Sun, 15 Jan 2023 18:54:16 +0000 (18:54 +0000)]
man: note that cgroup-based sandboxing is not bypassed by '+'
DeviceAllow= and others are applied to the whole cgroup via bpf, so
using '+' on an Exec line will not bypass them. Explain this in the
manpage.
Fixes https://github.com/systemd/systemd/issues/26035
Lennart Poettering [Wed, 18 Jan 2023 17:11:12 +0000 (18:11 +0100)]
Merge pull request #25790 from joshua-zivkovic/JZ/plotjson-main
systemd-analyze: Add JSON and table output to systemd-analyze's plot
Lennart Poettering [Wed, 18 Jan 2023 17:10:30 +0000 (18:10 +0100)]
Merge pull request #26082 from kraxel/uki
bootctl: add is-uki command
Jan Janssen [Tue, 23 Aug 2022 08:51:36 +0000 (10:51 +0200)]
boot: Drop use of Print
The custom print helpers have been replaced with explicit checks at the
call site to keep this in line with the way it is done in userspace. Any
calls where the check has been ommited should not need them as the value
is expected to alawys be around.
Jan Janssen [Sun, 5 Jun 2022 13:08:07 +0000 (15:08 +0200)]
boot: Drop use of xpool_print/SPrint
Jan Janssen [Thu, 18 Aug 2022 11:43:19 +0000 (13:43 +0200)]
tree-wide: Use __func__ in asserts
clang puts the whole function signature in __PRETTY_FUNCTION__, which is
a bit excessive for something that can already be figured out by using
the line number.
Jan Janssen [Thu, 18 Aug 2022 11:41:49 +0000 (13:41 +0200)]
boot: Add log_trace debugging helper
Jan Janssen [Sun, 5 Jun 2022 11:19:21 +0000 (13:19 +0200)]
boot: Introduce log_wait
Instead of stalling for every log message as it appears we now wait for
several messages at strategic locations.
Jan Janssen [Fri, 10 Jun 2022 17:06:57 +0000 (19:06 +0200)]
boot: Use printf for error logging
This also drops the _stall suffix in anticipation of the next commit.
Jan Janssen [Fri, 10 Jun 2022 16:55:24 +0000 (18:55 +0200)]
boot: Add printf functions
joshuazivkovic [Fri, 13 Jan 2023 09:17:27 +0000 (09:17 +0000)]
systemd-analyze: Add --json=, --table and -no-legend tests for plot
joshuazivkovic [Wed, 14 Dec 2022 12:31:59 +0000 (12:31 +0000)]
systemd-analyze: Add tab complete logic for plot
joshuazivkovic [Wed, 14 Dec 2022 12:31:22 +0000 (12:31 +0000)]
systemd-analyze: Update man/systemd-analyze.xml with Plot JSON and table
Joshua Zivkovic [Wed, 2 Nov 2022 08:55:50 +0000 (08:55 +0000)]
systemd-analyze: Add table and JSON output implementation to plot
Yu Watanabe [Wed, 18 Jan 2023 09:53:42 +0000 (18:53 +0900)]
test-network: reprocess the loopback network interface
Fixes the issue reported at https://github.com/systemd/systemd-centos-ci/pull/585#issuecomment-
1385537641.
Lennart Poettering [Wed, 18 Jan 2023 14:05:40 +0000 (15:05 +0100)]
Merge pull request #26021 from fbuihuu/some-journald-improvements
Some journald improvements
Gerd Hoffmann [Tue, 17 Jan 2023 21:06:06 +0000 (22:06 +0100)]
bootctl: add kernel-inspect command
Takes a kernel image as argument. Prints details about the kernel.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Mon, 16 Jan 2023 17:58:21 +0000 (18:58 +0100)]
bootctl: add kernel-identity command
The command takes a kernel as argument and checks what kind of kernel
the image is. Returns one of uki, pe or unknown.
Lennart Poettering [Wed, 18 Jan 2023 13:14:39 +0000 (14:14 +0100)]
Merge pull request #26092 from poettering/dissect-sector-size
auto-detect intended sector size from DDI disk images, and configure loopback devices for it
Luca Boccassi [Mon, 16 Jan 2023 23:46:01 +0000 (23:46 +0000)]
core: add GetUnitByPIDFD method and use it in systemctl
A pid can be recycled, but a pidfd is pinned. Add a new method that is safer
as it takes a pidfd as input.
Return not only the D-Bus object path, but also the unit id and the last
recorded invocation id, as they are both useful (especially the id, as
converting from a path object to a unit id from a script requires another
round-trip via D-Bus).
Note that the manager still tracks processes by pid, so theorethically this
is not fully error-proof, but on the other hand the method response is
synchronous and the manager is single-threaded, so once a call is being
processed the unit database will not change anyway. Once the manager
switches to use pidfds everywhere, this can be further hardened.
Koba Ko [Wed, 18 Jan 2023 03:22:50 +0000 (11:22 +0800)]
hwdb: Add mic mute key mappings for Dell G16 Series
add Dell G16 series to use the mic mute hotkey.
Lennart Poettering [Tue, 17 Jan 2023 20:42:21 +0000 (21:42 +0100)]
repart: auto-probe sector size when not specified
Lennart Poettering [Tue, 17 Jan 2023 20:42:02 +0000 (21:42 +0100)]
homework: when creating/resizing GPT partitions, also set sector size explicitly
Lennart Poettering [Tue, 17 Jan 2023 17:52:09 +0000 (18:52 +0100)]
dissect: show sector size in info output
Lennart Poettering [Tue, 17 Jan 2023 17:50:59 +0000 (18:50 +0100)]
loop-util: always tell kernel explicitly about loopback sector size
Let's not leave the sector size unspecified: either set a user supplied
value, or auto-detect the right size by probing the disk image
accordingly.
Lennart Poettering [Tue, 17 Jan 2023 17:06:05 +0000 (18:06 +0100)]
dissect-image: add probe_sector_size() helper for detecting sector size of a GPT disk image
When we operate with DDIs with sector sizes != 512 we need to configure
the loopback device to match it, otherwise the image and the kernel
block device will disagree what things are.
Let's add a prober that tries to determine the sector size of a GPT DDI.
It does this by looking for the GPT partition table header at the
various byte offsets they must be located on, given a specific sector
size. It will try sector size 512, 1024, 2048 and 4096. Of these only
the 512 and 4096 really make sense IRL I guess, but let's be thorough.
Lennart Poettering [Tue, 17 Jan 2023 14:49:31 +0000 (15:49 +0100)]
loop-util: insist on setting the sector size correctly
If we attach a disk image to a loopback device the sector size of the
image must match the one of the loopback device, hence be more careful
here.
Lennart Poettering [Tue, 17 Jan 2023 19:12:30 +0000 (20:12 +0100)]
blockdev-util: add simple wrapper around BLKSSZGET
Just adds some typesafety and generates an error if the field is not
initialized in the block device yet.
Daan De Meyer [Wed, 18 Jan 2023 08:54:50 +0000 (09:54 +0100)]
Merge pull request #26044 from DaanDeMeyer/repart-sector-size
repart: Allow configuring sector size
Frantisek Sumsal [Tue, 17 Jan 2023 17:04:30 +0000 (18:04 +0100)]
test: bump D-Bus service start timeout if we run without accel
The default (25s) doesn't seem to be enough in some cases (especially
in VMs without acceleration), causing spurious timeouts:
[ 174.297658] dbus-daemon[647]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.0' (uid=0 pid=645 comm="hostnamectl " label="kernel")
[ 184.202313] systemd[1]: systemd-update-utmp-runlevel.service: Consumed 1.253s CPU time.
[ 197.335422] systemd[1]: Started dbus.service.
[ 199.211468] testsuite-71.sh[639]: + assert_in 'Static hostname: H' ''
[ 199.347192] dbus-daemon[647]: [system] Failed to activate service 'org.freedesktop.hostname1': timed out (service_start_timeout=25000ms)
[ 199.394879] testsuite-71.sh[657]: + set +ex
[ 199.438918] testsuite-71.sh[657]: FAIL: 'Static hostname: H' not found in:
[ 200.966006] systemd-logind[631]: Watching system buttons on /dev/input/event0 (Power Button)
[ 201.008178] systemd-logind[631]: Watching system buttons on /dev/input/event1 (AT Translated Set 2 keyboard)
[ 201.034106] systemd-logind[631]: New seat seat0.
[ 201.238267] sh[658]: + systemctl poweroff --no-block
[ 201.329890] systemd[1]: Starting systemd-hostnamed.service...
[ 202.156622] systemd[1]: systemd-update-utmp-runlevel.service: Deactivated successfully.
[ 204.818913] hostnamectl[645]: Failed to query system properties: Connection timed out
[ 205.195583] systemd[1]: testsuite-71.service: Main process exited, code=exited, status=1/FAILURE
[ 205.227237] systemd[1]: testsuite-71.service: Failed with result 'exit-code'.
[ 205.712780] systemd[1]: Failed to start testsuite-71.service.
Luca Boccassi [Tue, 17 Jan 2023 21:59:12 +0000 (21:59 +0000)]
Merge pull request #26081 from yuwata/udev-symlink-remove
udev: support -= operator for SYMLINK
Dmitry V. Levin [Tue, 17 Jan 2023 08:00:00 +0000 (08:00 +0000)]
coredump: use fstatvfs to check the available space
Given that we already have the file descriptor opened for writing, it
would make sense to call fstatvfs with that file descriptor rather than
statvfs with the directory path that was used to open that descriptor.
Lennart Poettering [Tue, 17 Jan 2023 14:49:01 +0000 (15:49 +0100)]
doc: document how we expect empty lines to be used
Daan De Meyer [Thu, 12 Jan 2023 21:42:30 +0000 (22:42 +0100)]
repart: Allow configuring sector size
Let's allow users to configure the (logical) sector size of their
image. This is required when building images for a 4k sector size
disk on a 512b sector size host or vice-versa.
Daan De Meyer [Tue, 17 Jan 2023 18:49:15 +0000 (19:49 +0100)]
mkfs-util: Shorten strv operations error handling
Jan Janssen [Tue, 17 Jan 2023 14:51:42 +0000 (15:51 +0100)]
boot: Fix missed argument to Print()
This fixes
3e87a057a796b57bf9540b948823fbefef6693d7, which passed the
path to the wrong Print() call. Miraculously, this was printing the
correct path during testing and was therefore missed.
Frantisek Sumsal [Tue, 17 Jan 2023 11:14:13 +0000 (12:14 +0100)]
units: don't install pcrphase-related units without gnu-efi
since we don't have systemd-pcrphase built anyway, which breaks the tests:
...
I: Attempting to install /usr/lib/systemd/systemd-networkd-wait-online (based on unit file reference)
I: Attempting to install /usr/lib/systemd/systemd-network-generator (based on unit file reference)
I: Attempting to install /usr/lib/systemd/systemd-oomd (based on unit file reference)
I: Attempting to install /usr/lib/systemd/systemd-pcrphase (based on unit file reference)
W: Failed to install '/usr/lib/systemd/systemd-pcrphase'
make: *** [Makefile:4: setup] Error 1
make: Leaving directory '/root/systemd/test/TEST-01-BASIC'
Follow-up to
04959faa632272a8fc9cdac3121b2e4af721c1b6.
chris [Sat, 7 Jan 2023 20:11:28 +0000 (21:11 +0100)]
send dhcpv6 release when stopping
Dan Streetman [Fri, 9 Dec 2022 20:05:49 +0000 (15:05 -0500)]
tpm2: replace magic number
Lennart Poettering [Tue, 17 Jan 2023 10:04:03 +0000 (11:04 +0100)]
Merge pull request #25006 from poettering/pcr15
cryptsetup: measure LUKS volume keys to PCR 15
Lennart Poettering [Tue, 17 Jan 2023 09:53:23 +0000 (10:53 +0100)]
Merge pull request #26005 from medhefgo/boot-hypervisor
boot: Detect hypervisors using SMBIOS info
Lennart Poettering [Fri, 14 Oct 2022 19:21:46 +0000 (21:21 +0200)]
update TODO
Lennart Poettering [Fri, 16 Dec 2022 15:25:34 +0000 (16:25 +0100)]
test: add simple integration test for checking PCR extension works as it should
Lennart Poettering [Mon, 17 Oct 2022 13:20:53 +0000 (15:20 +0200)]
man: document new machine-id/fs measurement options
Lennart Poettering [Mon, 17 Oct 2022 12:50:56 +0000 (14:50 +0200)]
tpm2: add common helper for checking if we are running on UKI with TPM measurements
Let's introduce a common implementation of a function that checks
whether we are booted on a kernel with systemd-stub that has TPM PCR
measurements enabled. Do our own userspace measurements only if we
detect that.
PCRs are scarce and most likely there are projects which already make
use of them in other ways. Hence, instead of blindly stepping into their
territory let's conditionalize things so that people have to explicitly
buy into our PCR assignments before we start measuring things into them.
Specifically bind everything to an UKI that reported measurements.
This was previously already implemented in systemd-pcrphase, but with
this change we expand this to all tools that process PCR measurement
settings.
The env var to override the check is renamed to SYSTEMD_FORCE_MEASURE,
to make it more generic (since we'll use it at multiple places now).
This is not a compat break, since the original env var for that was not
included in any stable release yet.
Lennart Poettering [Sun, 16 Oct 2022 21:25:04 +0000 (23:25 +0200)]
generators: optionally, measure file systems at boot
If we use gpt-auto-generator, automatically measure root fs and /var.
Otherwise, add x-systemd.measure option to request this.
Lennart Poettering [Sun, 16 Oct 2022 20:45:17 +0000 (22:45 +0200)]
units: rework growfs units to be just a regular unit that is instantiated
The systemd-growfs@.service units are currently written in full for each
file system to grow. Which is kinda pointless given that (besides an
optional ordering dep) they contain always the same definition. Let's
fix that and add a static template for this logic, that the generator
simply instantiates (and adds an ordering dep for).
This mimics how systemd-fsck@.service is handled. Similar to the wait
that for root fs there's a special instance systemd-fsck-root.service
we also add a special instance systemd-growfs-root.service for the root
fs, since it has slightly different deps.
Fixes: #20788
See: #10014