From cc41b47c6f4fbc841dd4bdb89e11d7c00e42e76a Mon Sep 17 00:00:00 2001 From: wrvsrx Date: Sat, 6 May 2023 19:05:45 +0800 Subject: [PATCH 1/2] nixos/lib: hash triggers after converting them to string in systemd-lib This change is made for two reasons: 1. If `toString config.restartTriggers` containes `\n`, systemd unit file will be ill-formed. 2. This change can limit length of the trigger, although it doesn't matter in most cases. --- nixos/lib/systemd-lib.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix index a21450708fe..60085c32578 100644 --- a/nixos/lib/systemd-lib.nix +++ b/nixos/lib/systemd-lib.nix @@ -289,9 +289,9 @@ in rec { // optionalAttrs (config.requisite != []) { Requisite = toString config.requisite; } // optionalAttrs (config ? restartTriggers && config.restartTriggers != []) - { X-Restart-Triggers = toString config.restartTriggers; } + { X-Restart-Triggers = builtins.hashString "sha512" (toString config.restartTriggers); } // optionalAttrs (config ? reloadTriggers && config.reloadTriggers != []) - { X-Reload-Triggers = toString config.reloadTriggers; } + { X-Reload-Triggers = builtins.hashString "sha512" (toString config.reloadTriggers); } // optionalAttrs (config.description != "") { Description = config.description; } // optionalAttrs (config.documentation != []) { From 05129aab01a352e6f46487633820d9d75681538d Mon Sep 17 00:00:00 2001 From: wrvsrx Date: Thu, 11 May 2023 17:38:34 +0800 Subject: [PATCH 2/2] nixos/lib: save triggers of systemd into nix store --- nixos/lib/systemd-lib.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix index 60085c32578..eb2bcb9d3b9 100644 --- a/nixos/lib/systemd-lib.nix +++ b/nixos/lib/systemd-lib.nix @@ -289,9 +289,9 @@ in rec { // optionalAttrs (config.requisite != []) { Requisite = toString config.requisite; } // optionalAttrs (config ? restartTriggers && config.restartTriggers != []) - { X-Restart-Triggers = builtins.hashString "sha512" (toString config.restartTriggers); } + { X-Restart-Triggers = "${pkgs.writeText "X-Restart-Triggers" (toString config.restartTriggers)}"; } // optionalAttrs (config ? reloadTriggers && config.reloadTriggers != []) - { X-Reload-Triggers = builtins.hashString "sha512" (toString config.reloadTriggers); } + { X-Reload-Triggers = "${pkgs.writeText "X-Reload-Triggers" (toString config.reloadTriggers)}"; } // optionalAttrs (config.description != "") { Description = config.description; } // optionalAttrs (config.documentation != []) {