dovecot-2.2-pigeonhole: Made preparations for first v0.4 release.
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Fri Apr 19 10:47:00 EEST 2013
details: http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/5fa5e2dfbb57
changeset: 1754:5fa5e2dfbb57
user: Stephan Bosch <stephan at rename-it.nl>
date: Fri Apr 19 09:46:49 2013 +0200
description:
Made preparations for first v0.4 release.
diffstat:
INSTALL | 6 +++-
NEWS | 22 ++++++++++++++++++-
README | 44 ++++++++++++++++++++++++++++----------
TODO | 24 +++++++++-----------
doc/plugins/sieve_extprograms.txt | 6 ++--
5 files changed, 71 insertions(+), 31 deletions(-)
diffs (200 lines):
diff -r ee5a40db9e73 -r 5fa5e2dfbb57 INSTALL
--- a/INSTALL Fri Apr 19 09:45:15 2013 +0200
+++ b/INSTALL Fri Apr 19 09:46:49 2013 +0200
@@ -394,7 +394,8 @@
enabled for use by default. Refer to doc/extensions/vnd.dovecot.duplicate.txt
for configuration information.
-- Vnd.dovovecot.pipe, vnd.dovecot.filter, vnd.dovecot.execute extensions:
+- Extprograms plugin;
+ vnd.dovovecot.pipe, vnd.dovecot.filter, vnd.dovecot.execute extensions:
The "sieve_extprograms" plugin provides extensions to the Sieve filtering
language adding new action commands for invoking a predefined set of external
@@ -644,7 +645,8 @@
available when this package is compiled against the Dovecot headers only. The
test suite executes a list of test cases and halts when one of them fails. If it
executes all test cases successfully, the test suite finishes. You can execute
-the test suite using `make test`.
+the basic test suite using `make test`, which does not include the plugins. You
+can execute the full test suite using `make check`.
A failing test case is always a bug and a report is greatly appreciated.
diff -r ee5a40db9e73 -r 5fa5e2dfbb57 NEWS
--- a/NEWS Fri Apr 19 09:45:15 2013 +0200
+++ b/NEWS Fri Apr 19 09:46:49 2013 +0200
@@ -1,3 +1,23 @@
+v0.4.0 UNRELEASED Stephan Bosch <stephan at rename-it.nl>
+
+ + Added doveadm-sieve plugin that provides the possibility to synch Sieve
+ scripts using doveadm sync along with the user's mailboxes.
+ + Added the Sieve extprograms plugin to the main Pigeonhole package. It is
+ still a plugin, but it is now included so that a separate compile is no
+ longer necessary and distributors are likely to include it. The extprograms
+ plugin provides Sieve language extensions that allows executing
+ (administrator-controlled) external programs for message delivery,
+ message filtering and string manipulation. Refer to
+ doc/plugins/sieve_extprograms.txt for more information.
+ + Added debug message showing Pigeonhole version at initialization. Makes it
+ very clear that the plugin is properly loaded.
+ + Finished implementation of the Sieve include extension. It should now
+ fully conform to RFC 6609. The main addition is the new :optional tag which
+ makes the include command ignore missing included scripts without an error.
+ + Finished implementation of the Sieve environment extension as much as
+ possible. Environment items "location", "phase" and "domain" now also
+ return a usable value.
+
v0.3.4 06-04-2013 Stephan Bosch <stephan at rename-it.nl>
* Changed error handling to be less of a nuisance for administrators. Strictly
@@ -22,7 +42,7 @@
sieve_vacation_dont_check_recipient is active.
- Sieve tools: the -D option wasn't enabled and documented for all tools.
- Siev dict script storage: fixed potential segfault occuring when dict
- initialization fails.
+ initialization fails.
- ManageSieve: fixed bug in skipping of CRLF at end of AUTHENTICATE command.
- ManageSieve: fixed handling of unkown commands pre-login.
- Fixed compile on Mageia Linux.
diff -r ee5a40db9e73 -r 5fa5e2dfbb57 README
--- a/README Fri Apr 19 09:45:15 2013 +0200
+++ b/README Fri Apr 19 09:46:49 2013 +0200
@@ -102,7 +102,7 @@
body (RFC 5173): almost fully supported, but the text body-transform
implementation is simple and some issues make it still not completely
RFC compliant.
- environment (RFC 5183): fully supported (v0.1.5+).
+ environment (RFC 5183): fully supported (v0.4.0+).
variables (RFC 5229): fully supported.
vacation (RFC 5230): fully supported.
+ vacation-seconds (RFC 6131): fully supported (v0.2.3+).
@@ -132,6 +132,22 @@
The availability of these deprecated extensions is disabled by default.
+ The following Dovecot-specific Sieve extensions are available:
+
+ vnd.dovecot.debug (v0.3.0+):
+ Allows logging debug messages
+ vnd.dovecot.duplicate (v0.3.1+):
+ Allows detecting duplicate message deliveries based on message ID and
+ other criteria.
+ vnd.dovecot.pipe (v0.4.0+; sieve_extprograms plugin):
+ Implements piping messages to a pre-defined set of external programs
+ vnd.dovecot.filter (v0.4.0+; sieve_extprograms plugin):
+ Implements filtering messages through a pre-defined set of external
+ programs
+ vnd.dovecot.execute (v0.4.0+; sieve_extprograms plugin):
+ Implements executing a pre-defined set of external programs with the
+ option to process string data through the external program
+
The following extensions are under development:
ereject (RFC 5429; page 4): implemented, but currently equal to reject
@@ -159,19 +175,23 @@
these are available at your $prefix/bin directory. The following commands are
installed:
-sievec - Compiles sieve scripts into a binary representation for later
- execution. Refer to the next section on manually compiling Sieve
- scripts.
+sievec - Compiles sieve scripts into a binary representation for later
+ execution. Refer to the next section on manually compiling Sieve
+ scripts.
-sieve-test - This is a universal Sieve test tool for testing the effect of a
- Sieve script on a particular message. It allows compiling, running
- and testing Sieve scripts. It can either be used to display the
- actions that would be performed on the provided test message or it
- can be used to test the actual delivery of the message and show the
- messages that would normally be sent through SMTP.
+sieve-test - This is a universal Sieve test tool for testing the effect of a
+ Sieve script on a particular message. It allows compiling,
+ running and testing Sieve scripts. It can either be used to
+ display the actions that would be performed on the provided test
+ message or it can be used to test the actual delivery of the
+ message and show the messages that would normally be sent through
+ SMTP.
-sieve-dump - Dumps the content of a Sieve binary file for (development)
- debugging purposes.
+sieve-dump - Dumps the content of a Sieve binary file for (development)
+ debugging purposes.
+
+sieve-filter - Allow running Sieve filters on messages already stored in a
+ mailbox.
When installed, man pages are also available for these commands. In this package
the man pages are present in doc/man and can be viewed before install using
diff -r ee5a40db9e73 -r 5fa5e2dfbb57 TODO
--- a/TODO Fri Apr 19 09:45:15 2013 +0200
+++ b/TODO Fri Apr 19 09:46:49 2013 +0200
@@ -1,8 +1,14 @@
Current activities:
-* Finish 0.4.0 release.
+* Make the sieve storage a base class with (possibly) various implementations,
+ just like mail-storage. This aims to provide support for alternate types
+ of script storage like LDAP or SQL database.
+ - Implement read/write script storages for using ManageSieve with dict
+ database
+ - Implement infrastructure for loading a sequence of global scripts from
+ a database (for sieve_before/sieve_after).
-Parallel plugin-based efforts:
+Parallel plugin-based efforts (on hold at the moment):
* Implement enotify xmpp method as a plugin.
* Implement metadata and servermetadata extensions as a plugin.
@@ -10,15 +16,6 @@
Next (mostly in order of descending priority/precedence):
-* Implement generic Sieve script object that abstracts from its location and
- add support for retrieving scripts from dict database.
- - Implement infrastructure for loading a sequence of global scripts from
- a database (for sieve_before/sieve_after).
-* Make the sieve storage a base class with (possibly) various implementations,
- just like mail-storage. This aims to provide support for alternate types
- of script storage like LDAP or SQL database.
- - Implement read/write script storages for using ManageSieve with dict
- database
* Implement index extension
* Add normalize() method to comparators to normalize the string before matching
(for efficiency).
@@ -65,7 +62,8 @@
- Review the specification documents and check whether the given requirements
are tested at least once.
* Fix ManageSieve proxy to recognize response codes from the backend and forward
- them to the user if appropriate/safe.
+ them to the user if appropriate/safe. Probably means implementing a proper
+ ManageSieve client library.
* Test ManageSieve behavior thoroughly:
- Test pipelined behavior
- Test proxy authentication
@@ -76,7 +74,7 @@
* Build a server with test mail accounts that processes lots and lots of mail
(e.g. spam, mailing lists etc.)
-* ## MAKE A FIFTH MAIN RELEASE (0.5.x) ##
+Low priority items:
* Implement extlists extension as a plugin
* Enotify extension: detect use of variable values extracted from the message
diff -r ee5a40db9e73 -r 5fa5e2dfbb57 doc/plugins/sieve_extprograms.txt
--- a/doc/plugins/sieve_extprograms.txt Fri Apr 19 09:45:15 2013 +0200
+++ b/doc/plugins/sieve_extprograms.txt Fri Apr 19 09:46:49 2013 +0200
@@ -91,9 +91,9 @@
The three extensions introduced by this plugin - "vnd.dovecot.pipe",
"vnd.dovecot.filter" and "vnd.dovecot.pipe" - each have separate but similar
-configuration. The settings that specify a period are specified in s(econds),
-unless followed by a d(ay), h(our) or m(inute) specifier character. The
-following configuration settings are used, for which "<extension>" in the
+configuration. The settings that specify a time period are specified in
+s(econds), unless followed by a d(ay), h(our) or m(inute) specifier character.
+The following configuration settings are used, for which "<extension>" in the
setting name is replaced by either "pipe", "filter" or "execute" depending on
which extension is being configured.
More information about the dovecot-cvs
mailing list