diff options
author | Linus Heckemann <git@sphalerite.org> | 2022-04-20 16:34:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-20 16:34:43 +0200 |
commit | 5e513b4b24a2ad020523a0f52a6753d986529a98 (patch) | |
tree | 05f2f8432d88ef99c0129325e0539167484f5c5e /nixos | |
parent | 04241c87fee25dd6943ccdeaf5bc8bec0472b1a8 (diff) | |
parent | 572131c6a945069dba5a12a0354df8254224a458 (diff) | |
download | nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.tar nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.tar.gz nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.tar.bz2 nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.tar.lz nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.tar.xz nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.tar.zst nixlib-5e513b4b24a2ad020523a0f52a6753d986529a98.zip |
Merge pull request #167324 from alyssais/mailman-postfix
nixos/{postfix,mailman}: fix ordering between services
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/mail/mailman.nix | 4 | ||||
-rw-r--r-- | nixos/modules/services/mail/postfix.nix | 39 |
2 files changed, 25 insertions, 18 deletions
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index b7e1110f1cde..f1e074587b31 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -318,7 +318,9 @@ in { systemd.services = { mailman = { description = "GNU Mailman Master Process"; - after = [ "network.target" ]; + before = lib.optional cfg.enablePostfix "postfix.service"; + after = [ "network.target" ] + ++ lib.optional cfg.enablePostfix "postfix-setup.service"; restartTriggers = [ config.environment.etc."mailman.cfg".source ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix index 23d3574ae27c..da14b6eef7ed 100644 --- a/nixos/modules/services/mail/postfix.nix +++ b/nixos/modules/services/mail/postfix.nix @@ -723,23 +723,10 @@ in { ${setgidGroup}.gid = config.ids.gids.postdrop; }; - systemd.services.postfix = - { description = "Postfix mail server"; - - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - path = [ pkgs.postfix ]; - - serviceConfig = { - Type = "forking"; - Restart = "always"; - PIDFile = "/var/lib/postfix/queue/pid/master.pid"; - ExecStart = "${pkgs.postfix}/bin/postfix start"; - ExecStop = "${pkgs.postfix}/bin/postfix stop"; - ExecReload = "${pkgs.postfix}/bin/postfix reload"; - }; - - preStart = '' + systemd.services.postfix-setup = + { description = "Setup for Postfix mail server"; + serviceConfig.Type = "oneshot"; + script = '' # Backwards compatibility if [ ! -d /var/lib/postfix ] && [ -d /var/postfix ]; then mkdir -p /var/lib @@ -777,6 +764,24 @@ in ''; }; + systemd.services.postfix = + { description = "Postfix mail server"; + + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "postfix-setup.service" ]; + requires = [ "postfix-setup.service" ]; + path = [ pkgs.postfix ]; + + serviceConfig = { + Type = "forking"; + Restart = "always"; + PIDFile = "/var/lib/postfix/queue/pid/master.pid"; + ExecStart = "${pkgs.postfix}/bin/postfix start"; + ExecStop = "${pkgs.postfix}/bin/postfix stop"; + ExecReload = "${pkgs.postfix}/bin/postfix reload"; + }; + }; + services.postfix.config = (mapAttrs (_: v: mkDefault v) { compatibility_level = pkgs.postfix.version; mail_owner = cfg.user; |