Unverified Commit 4a9c962a authored by illustris's avatar illustris
Browse files

nixos/systemd-lib: fix restart/reloadTriggers when passing paths

When passing a path to restartTriggers or reloadTriggers, X-Restart/Reload-Triggers
will get populated by the absolute path of the file on the machine where the
config is evaluated. This patch corrects this behavior.
parent 8d5a3b09
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -276,6 +276,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m

- Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.

- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the nix store to make the behavior consistent.
  Previously, `restartTriggers = [ ./config.txt ]` would either always or never trigger a restart when switching to a new configuration, depending on if the source was in a flake or not.

- `spark2014` has been renamed to `gnatprove`. A version of `gnatprove` matching different GNAT versions is available from the different `gnatPackages` sets.

- `services.resolved.fallbackDns` can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
+13 −2
Original line number Diff line number Diff line
@@ -14,10 +14,12 @@ let
    elem
    filter
    filterAttrs
    flatten
    flip
    head
    isInt
    isList
    isPath
    length
    makeBinPath
    makeSearchPathOutput
@@ -28,6 +30,7 @@ let
    optional
    optionalAttrs
    optionalString
    pipe
    range
    replaceStrings
    reverseList
@@ -362,9 +365,17 @@ in rec {
        // optionalAttrs (config.requisite != [])
          { Requisite = toString config.requisite; }
        // optionalAttrs (config ? restartTriggers && config.restartTriggers != [])
          { X-Restart-Triggers = "${pkgs.writeText "X-Restart-Triggers-${name}" (toString config.restartTriggers)}"; }
          { X-Restart-Triggers = "${pkgs.writeText "X-Restart-Triggers-${name}" (pipe config.restartTriggers [
              flatten
              (map (x: if isPath x then "${x}" else x))
              toString
            ])}"; }
        // optionalAttrs (config ? reloadTriggers && config.reloadTriggers != [])
          { X-Reload-Triggers = "${pkgs.writeText "X-Reload-Triggers-${name}" (toString config.reloadTriggers)}"; }
          { X-Reload-Triggers = "${pkgs.writeText "X-Reload-Triggers-${name}" (pipe config.reloadTriggers [
              flatten
              (map (x: if isPath x then "${x}" else x))
              toString
            ])}"; }
        // optionalAttrs (config.description != "") {
          Description = config.description; }
        // optionalAttrs (config.documentation != []) {