dovecot-2.2-pigeonhole: Merged changes from Pigeonhole v0.2 tree.

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Sun May 20 13:17:10 EEST 2012


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/258d83f111b9
changeset: 1630:258d83f111b9
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Sun May 20 12:16:43 2012 +0200
description:
Merged changes from Pigeonhole v0.2 tree.

diffstat:

 INSTALL                                                            |   57 +-
 Makefile.am                                                        |    2 +
 README                                                             |   10 +-
 configure.in                                                       |    2 +
 doc/Makefile.am                                                    |    7 +-
 doc/editheader.txt                                                 |   51 --
 doc/example-config/conf.d/90-sieve.conf                            |   14 +-
 doc/extensions/editheader.txt                                      |   51 ++
 doc/extensions/include.txt                                         |   32 +
 doc/extensions/spamtest-virustest.txt                              |  140 ++++++
 doc/extensions/vacation.txt                                        |   95 ++++
 doc/extensions/vnd.dovecot.duplicate.txt                           |   56 ++
 doc/include.txt                                                    |   32 -
 doc/rfc/Makefile.am                                                |   32 +
 doc/rfc/spec-bosch-sieve-duplicate.txt                             |  224 ++++++++++
 doc/rfc/xml/reference.KEYWORDS.xml                                 |   44 +
 doc/rfc/xml/reference.SIEVE.xml                                    |   17 +
 doc/rfc/xml/spec-bosch-sieve-duplicate.xml                         |  159 +++++++
 doc/spamtest-virustest.txt                                         |  136 ------
 doc/vacation.txt                                                   |   95 ----
 src/lib-managesieve/managesieve-parser.c                           |    6 +-
 src/lib-sieve-tool/mail-raw.c                                      |    4 +-
 src/lib-sieve/Makefile.am                                          |    1 +
 src/lib-sieve/edit-mail.c                                          |   30 +-
 src/lib-sieve/mcht-matches.c                                       |    1 -
 src/lib-sieve/plugins/body/ext-body-common.c                       |   13 +-
 src/lib-sieve/plugins/editheader/ext-editheader-common.c           |    3 +-
 src/lib-sieve/plugins/imap4flags/tag-flags.c                       |    3 +
 src/lib-sieve/plugins/include/cmd-include.c                        |    3 +-
 src/lib-sieve/plugins/notify/ext-notify-common.c                   |   10 +-
 src/lib-sieve/plugins/variables/ext-variables-modifiers.c          |    4 +-
 src/lib-sieve/plugins/variables/ext-variables-namespaces.c         |    2 +-
 src/lib-sieve/plugins/vnd.dovecot/Makefile.am                      |    2 +-
 src/lib-sieve/plugins/vnd.dovecot/duplicate/Makefile.am            |   20 +
 src/lib-sieve/plugins/vnd.dovecot/duplicate/ext-duplicate-common.c |  120 +++++
 src/lib-sieve/plugins/vnd.dovecot/duplicate/ext-duplicate-common.h |   40 +
 src/lib-sieve/plugins/vnd.dovecot/duplicate/ext-duplicate.c        |   53 ++
 src/lib-sieve/plugins/vnd.dovecot/duplicate/tst-duplicate.c        |  151 ++++++
 src/lib-sieve/sieve-address.c                                      |   23 +-
 src/lib-sieve/sieve-ast.c                                          |   20 +-
 src/lib-sieve/sieve-ast.h                                          |    6 +-
 src/lib-sieve/sieve-binary-file.c                                  |    2 +-
 src/lib-sieve/sieve-commands.h                                     |    2 +-
 src/lib-sieve/sieve-extensions.c                                   |    3 +-
 src/lib-sieve/sieve-script-file.c                                  |    6 +-
 src/lib-sieve/sieve-script.c                                       |    6 +-
 src/lib-sieve/sieve-smtp.c                                         |    2 +-
 src/lib-sieve/sieve-validator.c                                    |   10 +-
 src/lib-sieve/sieve.c                                              |   24 +
 src/lib-sievestorage/sieve-storage-quota.c                         |    3 +-
 src/managesieve-login/client-authenticate.c                        |    2 +-
 src/managesieve-login/managesieve-login-settings-plugin.c          |    2 +-
 src/managesieve/cmd-putscript.c                                    |    2 +-
 src/plugins/lda-sieve/lda-sieve-plugin.c                           |   74 +-
 src/sieve-tools/sieve-dump.c                                       |    2 +-
 src/sieve-tools/sieve-filter.c                                     |    3 +-
 src/sieve-tools/sieve-test.c                                       |    6 +-
 src/sieve-tools/sievec.c                                           |    2 +-
 src/testsuite/cmd-test-message.c                                   |    3 +-
 src/testsuite/testsuite.c                                          |    2 +-
 tests/extensions/vnd.dovecot/duplicate/errors.svtest               |   18 +
 tests/extensions/vnd.dovecot/duplicate/errors/syntax.sieve         |   16 +
 tests/extensions/vnd.dovecot/duplicate/execute.svtest              |   12 +
 63 files changed, 1508 insertions(+), 465 deletions(-)

diffs (truncated from 2803 to 300 lines):

diff -r 2841e6b2f973 -r 258d83f111b9 INSTALL
--- a/INSTALL	Sun May 20 12:06:25 2012 +0200
+++ b/INSTALL	Sun May 20 12:16:43 2012 +0200
@@ -260,15 +260,25 @@
 config file control the execution sequence:
 
  sieve_before =
+ sieve_before2 =
+ sieve_before3 = (etc..)
    Path to a script file or a directory containing script files that need to be
-   executed before the user's script. If the path points to a directory, all the
-   Sieve scripts contained therein (with the proper .sieve extension) are
-   executed. The order of execution is determined by the file names, using a
-   normal 8bit per-character comparison. 
+   executed before the user's personal script. If the path points to a
+   directory, all the Sieve scripts contained therein (with the proper .sieve
+   extension) are executed. The order of execution within that directory is
+   determined by the file names, using a normal 8bit per-character comparison.
+   
+   Multiple script file or directory paths can be specified by appending an
+   increasing number. The Sieve scripts found from these paths are added to the
+   script execution sequence in the specified order. Reading the numbered
+   sieve_before settings stops at the first missing setting, so no numbers may
+   be skipped.
 
  sieve_after =
-   Identical to sieve_before, only the specified scripts are executed after the
-   user's script (only when keep is still in effect!). 
+ sieve_after2 =
+ sieve_after3 = (etc..)
+   Identical to sieve_before, but the specified scripts are executed after the
+   user's script (only when keep is still in effect, as explained below). 
 
 The script execution ends when the currently executing script in the sequence
 does not yield a "keep" result: when the script terminates, the next script is 
@@ -302,17 +312,29 @@
 
 plugin {
 ...
-   # Scripts executed before the user's script.
+   # Global scripts executed before the user's personal script.
    #   E.g. handling messages marked as dangerous
    sieve_before = /var/lib/dovecot/sieve/discard-virusses.sieve
 
-   # Scripts executed after the user's script (if keep is still in effect)
+   # User-specific scripts executed before the user's personal script.
+   #   E.g. a vacation script managed through a non-ManageSieve GUI.
+   sieve_before2 = /var/vmail/%d/%n/sieve-before
+
+   # User-specific scripts executed after the user's personal script.
+   # (if keep is still in effect)
+   #   E.g. user-specific default mail filing rules
+   sieve_after = /var/vmail/%d/%n/sieve-after
+
+   # Global scripts executed after the user's personal script 
+   # (if keep is still in effect)
    #   E.g. default mail filing rules.
-   sieve_after = /var/lib/dovecot/sieve/after.d/
+   sieve_after2 = /var/lib/dovecot/sieve/after.d/
 }
 
-IMPORTANT: Be sure to manually pre-compile the scripts specified by sieve_before 
-and sieve_after using the sievec tool, as explained in the README file.
+IMPORTANT: The scripts specified by sieve_before and sieve_after are often
+located in global locations to which the Sieve interpreter has no write access.
+In that case be sure to manually pre-compile those scripts using the sievec
+tool, as explained in the README file.
 
 Sieve Interpreter - Extension Configuration
 -------------------------------------------
@@ -324,7 +346,8 @@
   to delete and add header fields.
 
   The editheader extension requires explicit configuration and is not enabled
-  for use by default. Refer to doc/editheader.txt for configuration information.
+  for use by default. Refer to doc/extensions/editheader.txt for configuration
+  information.
 
 - Vacation extension:
 
@@ -332,8 +355,8 @@
   automatic replies to incoming email messages.
 
   The vacation extension is available by default, but it has its own specific
-  configuration options. Refer to doc/vacation.txt for settings specific to the
-  vacation extension.
+  configuration options. Refer to doc/extensions/vacation.txt for settings
+  specific to the vacation extension.
 
 - Include extension:
 
@@ -341,8 +364,8 @@
   into another.
 
   The include extension is available by default, but it has its own specific
-  configuration options. Refer to doc/include.txt for settings specific to the
-  include extension.
+  configuration options. Refer to doc/extensions/include.txt for settings
+  specific to the include extension.
 
 - Spamtest and Virustest extensions:
 
@@ -357,7 +380,7 @@
 
   The spamtest, spamtestplus and virustest extensions require explicit
   configuration and are not enabled for use by default. Refer to
-  doc/spamtest-virustest.txt for configuration information.
+  doc/extensions/spamtest-virustest.txt for configuration information.
 
 Sieve Interpreter - Migration from CMUSieve (Dovecot v1.0/v1.1)
 ---------------------------------------------------------------
diff -r 2841e6b2f973 -r 258d83f111b9 Makefile.am
--- a/Makefile.am	Sun May 20 12:06:25 2012 +0200
+++ b/Makefile.am	Sun May 20 12:16:43 2012 +0200
@@ -133,6 +133,8 @@
 	tests/extensions/editheader/protected.svtest \
 	tests/extensions/editheader/errors.svtest \
 	tests/extensions/vnd.dovecot/debug/execute.svtest \
+	tests/extensions/vnd.dovecot/duplicate/errors.svtest \
+	tests/extensions/vnd.dovecot/duplicate/execute.svtest \
 	tests/deprecated/notify/basic.svtest \
 	tests/deprecated/notify/mailto.svtest \
 	tests/deprecated/notify/errors.svtest \
diff -r 2841e6b2f973 -r 258d83f111b9 README
--- a/README	Sun May 20 12:06:25 2012 +0200
+++ b/README	Sun May 20 12:16:43 2012 +0200
@@ -209,11 +209,11 @@
 
 sievec /var/lib/dovecot/sieve/global/
 
-This is necessary for scripts listed in the sieve_default, sieve_before and
-sieve_after settings. For global scripts that are only included in other scripts
-using the include extension, this step is not necessary, since included scripts
-are incorporated into the binary produced for the main script located in a
-user directory.
+This is often necessary for scripts listed in the sieve_default, sieve_before
+and sieve_after settings. For global scripts that are only included in other
+scripts using the include extension, this step is not necessary, since included
+scripts are incorporated into the binary produced for the main script located in
+a user directory.
 
 Compile and Runtime Logging
 ===========================
diff -r 2841e6b2f973 -r 258d83f111b9 configure.in
--- a/configure.in	Sun May 20 12:06:25 2012 +0200
+++ b/configure.in	Sun May 20 12:16:43 2012 +0200
@@ -97,6 +97,7 @@
 doc/man/Makefile
 doc/example-config/Makefile
 doc/example-config/conf.d/Makefile
+doc/rfc/Makefile
 src/Makefile
 src/lib-sieve/Makefile
 src/lib-sieve/plugins/Makefile
@@ -121,6 +122,7 @@
 src/lib-sieve/plugins/editheader/Makefile
 src/lib-sieve/plugins/vnd.dovecot/Makefile
 src/lib-sieve/plugins/vnd.dovecot/debug/Makefile
+src/lib-sieve/plugins/vnd.dovecot/duplicate/Makefile
 src/lib-sieve-tool/Makefile
 src/lib-sievestorage/Makefile
 src/lib-managesieve/Makefile
diff -r 2841e6b2f973 -r 258d83f111b9 doc/Makefile.am
--- a/doc/Makefile.am	Sun May 20 12:06:25 2012 +0200
+++ b/doc/Makefile.am	Sun May 20 12:16:43 2012 +0200
@@ -1,15 +1,14 @@
-SUBDIRS = man example-config
+SUBDIRS = man example-config rfc
 
 docfiles = \
-	vacation.txt \
-	spamtest-virustest.txt
+	script-location-dict.txt
 
 if BUILD_DOCS
 sieve_doc_DATA = $(docfiles)
 endif
 
 EXTRA_DIST = \
-	rfc \
 	devel \
+	extensions \
 	$(docfiles)
 
diff -r 2841e6b2f973 -r 258d83f111b9 doc/editheader.txt
--- a/doc/editheader.txt	Sun May 20 12:06:25 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-Editheader Extension
-
-Relevant specifications
-=======================
-
-  RFC5293 - doc/rfc/editheader.rfc5293.txt
-
-Description
-===========
-
-The editheader extension [RFC5293] enables sieve scripts to interact with other
-components that consume or produce header fields by allowing the script to
-delete and add header fields.
-
-Configuration
-=============
-
-The editheader is not available by default and needs to be enabled explicitly by
-adding it to the sieve_extensions setting. 
-
-The following settings can be configured for the editheader extension (default
-values are indicated):
-
-sieve_editheader_max_header_size = 2048
-  The maximum size in bytes of a header field value passed to the addheader
-  command. The minimum value for this setting is 1024 bytes. The value is in
-  bytes, unless followed by a k(ilo).
-
-sieve_editheader_protected =
-  A space-separated list of headers that cannot be added to nor removed from the
-  message header. The `Received:' and `Auto-Submitted:' fields are always
-  protected and the `Subject:' header cannot be protected, as required by the
-  RFC specification; adding one of these headers to this setting has no effect.
-
-Invalid values for the settings above will make the Sieve interpreter log
-a warning and revert to the default values. 
-
-Example
-=======
-
-plugin {
-  # Use editheader
-  sieve_extensions = +editheader
-
-  # Header fiels must not exceed one 1k
-  sieve_editheader_max_header_size = 1k
-
-  # Protect special header
-  sieve_editheader_protected = X-Verified
-}
-
diff -r 2841e6b2f973 -r 258d83f111b9 doc/example-config/conf.d/90-sieve.conf
--- a/doc/example-config/conf.d/90-sieve.conf	Sun May 20 12:06:25 2012 +0200
+++ b/doc/example-config/conf.d/90-sieve.conf	Sun May 20 12:16:43 2012 +0200
@@ -28,14 +28,20 @@
   # Path to a script file or a directory containing script files that need to be
   # executed before the user's script. If the path points to a directory, all
   # the Sieve scripts contained therein (with the proper .sieve extension) are
-  # executed. The order of execution is determined by the file names, using a
-  # normal 8bit per-character comparison. 
+  # executed. The order of execution within a directory is determined by the
+  # file names, using a normal 8bit per-character comparison. Multiple script
+  # file or directory paths can be specified by appending an increasing number.
   #sieve_before =
+  #sieve_before2 =
+  #sieve_before3 = (etc...)
 
   # Identical to sieve_before, only the specified scripts are executed after the
-  # user's script (only when keep is still in effect!). 
+  # user's script (only when keep is still in effect!). Multiple script file or
+  # directory paths can be specified by appending an increasing number.
   #sieve_after =
-   
+  #sieve_after2 = 
+  #sieve_after2 = (etc...)
+
   # Which Sieve language extensions are available to users. By default, all 
   # supported extensions are available, except for deprecated extensions or
   # those that are still under development. Some system administrators may want
diff -r 2841e6b2f973 -r 258d83f111b9 doc/extensions/editheader.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/extensions/editheader.txt	Sun May 20 12:16:43 2012 +0200
@@ -0,0 +1,51 @@
+Editheader Extension
+
+Relevant specifications
+=======================
+
+  RFC5293 - doc/rfc/editheader.rfc5293.txt
+
+Description
+===========
+
+The editheader extension [RFC5293] enables sieve scripts to interact with other
+components that consume or produce header fields by allowing the script to
+delete and add header fields.
+
+Configuration
+=============
+
+The editheader is not available by default and needs to be enabled explicitly by
+adding it to the sieve_extensions setting. 
+
+The following settings can be configured for the editheader extension (default
+values are indicated):
+
+sieve_editheader_max_header_size = 2048
+  The maximum size in bytes of a header field value passed to the addheader
+  command. The minimum value for this setting is 1024 bytes. The value is in
+  bytes, unless followed by a k(ilo).
+
+sieve_editheader_protected =


More information about the dovecot-cvs mailing list