From dc200b05e434e38091ab9756975fd56c9eec965a Mon Sep 17 00:00:00 2001
From: intrigeri <intrigeri@boum.org>
Date: Mon, 25 Feb 2019 08:33:43 +0000
Subject: [PATCH] Schleuder: port invocation syntax to Schleuder 3. (#234)

* Schleuder: port invocation syntax to Schleuder 3.

Schleuder 2.x has been deprecated for a while. It's not maintained
anymore, has obsolete dependencies, and has been superseded by
Schleuder 3.

The new syntax is documented on
https://schleuder.org/schleuder/docs/server-admins.html#postfix

* compatibility with Schleuder 2 can be used this way:

  use_schleuder => 2

* support explicitly setting use_schleuder to 3.

A Boolean "true" value will thus mean "assume the latest upstream Schleuder
release". For now, that's 3.x so setting this parameter to 3 is equivalent
to setting it to true. But once Schleuder 4 is out, this may change,
so better provide users a way to hard-code the fact they have Schleuder 3.
---
 manifests/init.pp              | 5 +++--
 templates/master.cf.common.erb | 5 +++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/manifests/init.pp b/manifests/init.pp
index 171ca4d..f3096cf 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -63,7 +63,8 @@
 #
 # [*use_dovecot_lda*]     - (boolean) Whether to setup for Dovecot LDA
 #
-# [*use_schleuder*]       - (boolean) Whether to setup for Schleuder
+# [*use_schleuder*]       - (2/boolean) Whether to setup for Schleuder
+#                           (2 -> Schleuder 2, 3 or true -> Schleuder 3)
 #
 # [*use_sympa*]           - (boolean) Whether to setup for Sympa
 #
@@ -107,7 +108,7 @@ class postfix (
   String                          $smtp_listen         = '127.0.0.1',   # postfix_smtp_listen
   Boolean                         $use_amavisd         = false,         # postfix_use_amavisd
   Boolean                         $use_dovecot_lda     = false,         # postfix_use_dovecot_lda
-  Boolean                         $use_schleuder       = false,         # postfix_use_schleuder
+  Variant[Integer[2, 3], Boolean] $use_schleuder       = false,         # postfix_use_schleuder
   Boolean                         $use_sympa           = false,         # postfix_use_sympa
   String                          $postfix_ensure      = 'present',
   String                          $mailx_ensure        = 'present',
diff --git a/templates/master.cf.common.erb b/templates/master.cf.common.erb
index 2e363bb..ea8117e 100644
--- a/templates/master.cf.common.erb
+++ b/templates/master.cf.common.erb
@@ -22,8 +22,13 @@ dovecot   unix  -       n       n       -       -       pipe
   flags=DRhu user=<%= @mail_user %>:<%= @mail_user %> argv=/usr/lib/dovecot/deliver -d ${recipient}
 <% end -%>
 <% if @use_schleuder %>
+<% if @use_schleuder == 2 %>
 schleuder  unix  -       n       n       -       -       pipe
   flags=DRhu user=schleuder argv=/usr/bin/schleuder ${user}
+<% else %>
+schleuder  unix  -       n       n       -       -       pipe
+  flags=DRhu user=schleuder argv=/usr/bin/schleuder work ${recipient}
+<% end -%>
 <% end -%>
 <% if @use_sympa %>
 sympa        unix  -       n       n       -       -       pipe
-- 
GitLab