From ca591e700875b8439557cdc02a271014c35fcd0e Mon Sep 17 00:00:00 2001 From: Tavi Date: Mon, 19 Dec 2022 16:39:52 -0500 Subject: nixos/services.tinc: Add all generated /etc/ files to reloadTriggers Bug fix for issue #66431. Adds all files created as a result of hostSettings configuration to the created service's reloadTriggers, or to restartTriggers if the version of tinc isn't 1.1pre or later. --- nixos/modules/services/networking/tinc.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix index 09b23a60a4a..471e4d34cd6 100644 --- a/nixos/modules/services/networking/tinc.nix +++ b/nixos/modules/services/networking/tinc.nix @@ -349,9 +349,9 @@ in ###### implementation - config = mkIf (cfg.networks != { }) { - - environment.etc = foldr (a: b: a // b) { } + config = mkIf (cfg.networks != { }) ( + let + etcConfig = foldr (a: b: a // b) { } (flip mapAttrsToList cfg.networks (network: data: flip mapAttrs' data.hosts (host: text: nameValuePair ("tinc/${network}/hosts/${host}") @@ -366,19 +366,22 @@ in }; } )); + in { + environment.etc = etcConfig; systemd.services = flip mapAttrs' cfg.networks (network: data: nameValuePair ("tinc.${network}") - ({ + (let version = getVersion data.package; in { description = "Tinc Daemon - ${network}"; wantedBy = [ "multi-user.target" ]; path = [ data.package ]; - restartTriggers = [ config.environment.etc."tinc/${network}/tinc.conf".source ]; + reloadTriggers = mkIf (versionAtLeast version "1.1pre") [ (builtins.toJSON etcConfig) ]; + restartTriggers = mkIf (versionOlder version "1.1pre") [ (builtins.toJSON etcConfig) ]; serviceConfig = { Type = "simple"; Restart = "always"; RestartSec = "3"; - ExecReload = mkIf (versionAtLeast (getVersion data.package) "1.1pre") "${data.package}/bin/tinc -n ${network} reload"; + ExecReload = mkIf (versionAtLeast version "1.1pre") "${data.package}/bin/tinc -n ${network} reload"; ExecStart = "${data.package}/bin/tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}"; }; preStart = '' @@ -433,7 +436,7 @@ in users.groups = flip mapAttrs' cfg.networks (network: _: nameValuePair "tinc.${network}" {} ); - }; + }); meta.maintainers = with maintainers; [ minijackson mic92 ]; } -- cgit 1.4.1