From ed5f0fbfcd89b6109c48e2c8f1909d83b08ab33c Mon Sep 17 00:00:00 2001 From: WilliButz Date: Mon, 23 Jun 2025 20:08:28 +0200 Subject: [PATCH] nixos/repart-image: don't pass seed when it's null, update documentation From systemd-repart(8): If not specified it is attempted to read the machine ID from the host (or more precisely, the root directory configured via --root=) and use it as seed instead, falling back to a randomized seed otherwise. Use --seed=random to force a randomized seed. The option documentation now suggests the special value "random", for a random seed rather than relying on the implicit fact that there is no machine ID available in the build sandbox, causing repart to fallback on generating a random seed. Fixes #419331 --- nixos/modules/image/repart-image.nix | 4 +++- nixos/modules/image/repart.nix | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/modules/image/repart-image.nix b/nixos/modules/image/repart-image.nix index e62db75caf8f..49087d4786c5 100644 --- a/nixos/modules/image/repart-image.nix +++ b/nixos/modules/image/repart-image.nix @@ -173,11 +173,13 @@ stdenvNoCC.mkDerivation ( "--architecture=${systemdArch}" "--dry-run=no" "--size=auto" - "--seed=${seed}" "--definitions=${finalAttrs.finalRepartDefinitions}" "--split=${lib.boolToString split}" "--json=pretty" ] + ++ lib.optionals (seed != null) [ + "--seed=${seed}" + ] ++ lib.optionals createEmpty [ "--empty=create" ] diff --git a/nixos/modules/image/repart.nix b/nixos/modules/image/repart.nix index 13c90aa9ab7a..a44a2e5f9ea3 100644 --- a/nixos/modules/image/repart.nix +++ b/nixos/modules/image/repart.nix @@ -161,8 +161,9 @@ in # Generated with `uuidgen`. Random but fixed to improve reproducibility. default = "0867da16-f251-457d-a9e8-c31f9a3c220b"; description = '' - A UUID to use as a seed. You can set this to `null` to explicitly + A UUID to use as a seed. You can set this to `random` to explicitly randomize the partition UUIDs. + See {manpage}`systemd-repart(8)` for more information. ''; };