systemd-lib: include GPTMaxLabelLength constant

This commit is contained in:
nikstur 2024-04-08 16:36:28 +02:00
parent f819df36af
commit 4c397ea6de
2 changed files with 8 additions and 3 deletions

View File

@ -525,4 +525,9 @@ in rec {
)} )}
''; '';
# The maximum number of characters allowed in a GPT partition label. This
# limit is specified by UEFI and enforced by systemd-repart.
# Corresponds to GPT_LABEL_MAX from systemd's gpt.h.
GPTMaxLabelLength = 36;
} }

View File

@ -13,14 +13,14 @@ let
partitionAssertions = lib.mapAttrsToList (fileName: definition: partitionAssertions = lib.mapAttrsToList (fileName: definition:
let let
maxLabelLength = 36; # GPT_LABEL_MAX defined in systemd's gpt.h inherit (utils.systemdUtils.lib) GPTMaxLabelLength;
labelLength = builtins.stringLength definition.Label; labelLength = builtins.stringLength definition.Label;
in in
{ {
assertion = definition ? Label -> maxLabelLength >= labelLength; assertion = definition ? Label -> GPTMaxLabelLength >= labelLength;
message = '' message = ''
The partition label '${definition.Label}' defined for '${fileName}' is ${toString labelLength} The partition label '${definition.Label}' defined for '${fileName}' is ${toString labelLength}
characters long, but the maximum label length supported by systemd is ${toString maxLabelLength}. characters long, but the maximum label length supported by systemd is ${toString GPTMaxLabelLength}.
''; '';
} }
) cfg.partitions; ) cfg.partitions;