Hello community,

here is the log from the commit of package dovecot20 for openSUSE:Factory 
checked in at 2011-12-05 12:43:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dovecot20 (Old)
 and      /work/SRC/openSUSE:Factory/.dovecot20.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dovecot20", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/dovecot20/dovecot20.changes      2011-09-23 
01:55:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dovecot20.new/dovecot20.changes 2011-12-05 
12:43:26.000000000 +0100
@@ -1,0 +2,87 @@
+Mon Dec  5 04:29:17 UTC 2011 - [email protected]
+
+- Apparently coolo's bot lo longer likes commented patch lines..
+  see https://hermes.opensuse.org/messages/12739044 
+
+-------------------------------------------------------------------
+Fri Nov 25 22:34:15 UTC 2011 - [email protected]
+
+- Enable systemd units 
+
+-------------------------------------------------------------------
+Sat Nov 19 19:24:21 UTC 2011 - [email protected]
+
+- Update to Pigeonhole 2.0.5:
+  + Sieve vacation extension: made discard message for implicit
+    delivery more verbose
+  - The sieve-test tool: mixed up original and final envelope recipient
+    in implementation of command line arguments.
+  - Sieve vacation extension: resolved FIXME regarding the use of
+    variables in the :handle argument. Variables are now handled
+    correctly.
+  - Sieve body extension: fixed handling of :content "message/rfc822".
+    This now yields the headers of the embedded message as required by
+    the specification. Handling of :content "multipart" remains to be
+    fixed.
+  - LDA Sieve plugin: fixed problem with recipient_delimiter
+    configuration. Now it falls back to global recipient_delimiter
+    setting if plugin/recipient_delimiter is not set.
+
+-------------------------------------------------------------------
+Thu Nov 17 12:35:21 UTC 2011 - [email protected]
+
+- Update to 2.0.16:
+  * VSZ limits weren't being enforced for any processes. On server with
+    large mailboxes you may now see errors about it if the limits aren't
+    high enough. To fix them, either increase individual service {
+    vsz_limit } values or simply increase the default_vsz_limit setting.
+  * Proxying: If using ssl=yes or starttls=yes with a hostname (not IP)
+    as proxy destination, require that the certificate matches the given
+    hostname.
+  * LMTP: Changed default client_limit to 1. This should improve LMTP
+    throughput with default settings.
+  * dsync: Quota is no longer enforced (i.e. dsync can't fail because
+    user is over quota).
+  + Added "auto" mail storage driver, which can be used to autodetect
+    mailbox location and format. This behavior is already the default
+    for empty mail_location setting, so this change is mainly useful for
+    shared namespace's location setting.
+  + checkpassword: Export all auth %variables to AUTH_* environment.
+
+-------------------------------------------------------------------
+Sat Nov 12 22:36:23 UTC 2011 - [email protected]
+
+- update to 2.0.15:
+  * several fixes and performance enhancements:
+    + updated INSTALL documentation for new configuration options of the
+      include extension
+    + include extension: made nesting_depth and max_includes limits
+      configurable
+    + include extension: implemented proper configuration handling
+      Configuration is now only read once at extension initialization
+    + variables extension: fixed deinitialization problem (unfreed variable
+      scope data) newly found by Valgrind
+    + variables extension: fixed segfault bug triggered when dumping binary
+      variable scopes
+    + sieve: fixed debug mode; no messages were logged in some situations
+    + fix sievec: forgot to enable -D (debug) parameter
+    + lib-sieve: vacation extension: finally added support for using the
+      original recipient in vacation address check
+    + lib-sieve: added X-Sieve-Redirected-From header for people using SPF/SRS
+    + lib-sieve: add ihave extension (RFC5463)
+    + lib-sieve: made sure that flags and keywords are only checked when the
+      mailbox is actually opened
+    + made vnd.dovecot.debug extension available to the LDA plugin instead of
+      only the command line tools
+    + Sieve Storage: improved handling of unconfigured user home directory
+
+  * doveadm now can move messages back to primary storage
+
+-------------------------------------------------------------------
+Sun Sep 18 17:17:12 UTC 2011 - [email protected]
+
+- Remove redundant tags/sections from specfile
+  (cf. packaging guidelines)
+- Use %_smp_mflags for parallel build
+
+-------------------------------------------------------------------

Old:
----
  dovecot-2.0-pigeonhole-0.2.4.tar.bz2
  dovecot-2.0-pigeonhole_pass_config.patch
  dovecot-2.0-pigeonhole_pie.patch
  dovecot-2.0.14.tar.bz2

New:
----
  dovecot-2.0-pigeonhole-0.2.5.tar.bz2
  dovecot-2.0.16.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dovecot20.spec ++++++
--- /var/tmp/diff_new_pack.Qf4Yvh/_old  2011-12-05 12:43:35.000000000 +0100
+++ /var/tmp/diff_new_pack.Qf4Yvh/_new  2011-12-05 12:43:35.000000000 +0100
@@ -15,15 +15,14 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-# norootforbuild
 
 
 Name:           dovecot20
-Version:        2.0.14
+Version:        2.0.16
 Release:        0
 %define pkg_name dovecot
 %define sieve_version 2.0
-%define dovecot_version 2.0.14
+%define dovecot_version 2.0.16
 %define         dovecot_pigeonhole_docdir       
%{_docdir}/%{pkg_name}/dovecot-pigeonhole
 #define with_unfinished_sieve_features 1
 #
@@ -62,6 +61,11 @@
 %if 0%{?with_solr}
 BuildRequires:  curl-devel libexpat-devel
 %endif
+%if 0%{?suse_version} > 1140
+BuildRequires:  systemd
+%{?systemd_requires}
+%define has_systemd 1
+%endif
 PreReq:         pwdutils %insserv_prereq %fillup_prereq
 Conflicts:      dovecot10 dovecot11 dovecot12 dovecot-snapshot 
dovecot11-snapshot dovecot12-snapshot
 Provides:       dovecot = %{version}-%{release}
@@ -76,14 +80,13 @@
 # taken from    
http://www.dovecot.org/releases/2.0/%{pkg_name}-%{version}.tar.gz
 Source:         %{pkg_name}-%{dovecot_version}.tar.bz2
 # hg clone http://hg.rename-it.nl/dovecot-2.0-pigeonhole/
-%define dovecot_pigeonhole_source_dir 
%{pkg_name}-%{sieve_version}-pigeonhole-0.2.4
+%define dovecot_pigeonhole_source_dir 
%{pkg_name}-%{sieve_version}-pigeonhole-0.2.5
 Source1:        %{dovecot_pigeonhole_source_dir}.tar.bz2
 Source2:        %{pkg_name}.init
 Source3:        %{pkg_name}.pam
 Source4:        %{pkg_name}.README.SuSE
 Source5:        %{pkg_name}-fw
 Patch0:         dovecot-2.0_pie.patch
-Patch1:         dovecot-2.0-pigeonhole_pie.patch
 Summary:        IMAP and POP3 Server Written Primarily with Security in Mind
 
 %description
@@ -95,10 +98,6 @@
 compatible with UW-IMAP and Courier IMAP servers as well as mail
 clients accessing the mailboxes directly.
 
-Author:
---------
-    Timo Sirainen <[email protected]>
-
 %package backend-mysql
 License:        BSD 3-Clause; LGPL v2.1 or later; X11/MIT
 Group:          Productivity/Networking/Email/Servers
@@ -120,10 +119,6 @@
 
 This package holds the files needed for MySQL support.
 
-Author:
---------
-    Timo Sirainen <[email protected]>
-
 %package backend-pgsql
 License:        BSD 3-Clause; LGPL v2.1 or later; X11/MIT
 Group:          Productivity/Networking/Email/Servers
@@ -145,11 +140,6 @@
 
 This package holds the files needed for PostgreSQL support.
 
-Author:
---------
-    Timo Sirainen <[email protected]>
-
-
 %if 0%{?with_sqlite}
 
 %package backend-sqlite
@@ -173,12 +163,8 @@
 
 This package holds the files needed for SQLite support.
 
-Author:
---------
-    Timo Sirainen <[email protected]>
 %endif
 
-
 %if 0%{?with_clucene}
 
 %package fts-lucene
@@ -202,9 +188,6 @@
 
 This package holds the files needed for fulltext search support via CLucene.
 
-Author:
---------
-    Timo Sirainen <[email protected]>
 %endif
 
 %if 0%{?with_solr}
@@ -230,10 +213,6 @@
 
 This package holds the files needed for fulltext search support via solr.
 
-
-Author:
---------
-    Timo Sirainen <[email protected]>
 %endif
 
 %package devel
@@ -257,10 +236,6 @@
 This package holds the file needed to compile plugins outside of the
 dovecot tree.
 
-Author:
---------
-    Timo Sirainen <[email protected]>
-
 %prep
 %setup -q -n %{pkg_name}-%{dovecot_version} -a 1
 %{__gzip} -9v ChangeLog
@@ -276,9 +251,6 @@
 
 %build
 export CFLAGS="%{optflags}"
-%if 0%{?suse_version} > 1000
-    export CFLAGS="$CFLAGS -fstack-protector"
-%endif
 #{__aclocal} -I .
 #{__autoheader}
 #{__libtoolize} --force
@@ -292,7 +264,6 @@
 export LIBS="-pie"
 %configure                                          \
     --docdir=%{_docdir}/%{pkg_name}                 \
-    --libexecdir=%{_prefix}/lib                     \
     --with-moduledir=%{_libdir}/%{pkg_name}/modules \
     --with-ioloop=best                              \
     --with-ldap=plugin                              \
@@ -315,8 +286,11 @@
     --with-libcap                                   \
     --with-libwrap                                  \
     --with-docs                                     \
-    --disable-static
-make
+    --disable-static                                \
+%if 0%{?has_systemd}
+    --with-systemdsystemunitdir=%{_unitdir}
+%endif
+make %{?_smp_mflags}
 
 pushd %{dovecot_pigeonhole_source_dir}
     #./autogen.sh
@@ -330,7 +304,7 @@
       --with-unfinished-features \
       %endif
       --docdir="%{dovecot_pigeonhole_docdir}"
-    make
+    make %{?_smp_mflags}
 popd
 
 %check
@@ -377,6 +351,7 @@
 # install sieve docs
 %{__install} -m 0755 -Dd %{buildroot}%{dovecot_pigeonhole_docdir}
 pushd %{dovecot_pigeonhole_source_dir}
+%__sed -i 's/\r$//' doc/rfc/*
 cp -av AUTHORS COPYING* INSTALL NEWS README TODO \
        examples/ doc/rfc/ doc/devel \
   %{buildroot}%{dovecot_pigeonhole_docdir}/
@@ -385,32 +360,41 @@
 # install firewall services
 %{__install} -D -m 644 %{S:5} 
%{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{pkg_name}
 
-
-%clean
-%{__rm} -rf %{buildroot}
-
-
 %pre
 /usr/sbin/groupadd -r %{pkg_name} &>/dev/null || :
 /usr/sbin/useradd -o -g %{pkg_name} -s /bin/false -r -c "User for Dovecot 
imapd" -d %{_var}/run/%{pkg_name} %{pkg_name} &>/dev/null || :
 /usr/sbin/useradd -o -g %{pkg_name} -s /bin/false -r -c "User for Dovecot 
login" -d %{_var}/run/%{pkg_name} dovenull &>/dev/null || :
-
+%if 0%{?has_systemd}
+%service_add_pre %{pkg_name}.service %{pkg_name}.socket
+%endif
 
 %preun
 %stop_on_removal %{pkg_name}
+%if 0%{?has_systemd}
+%service_del_preun %{pkg_name}.service %{pkg_name}.socket
+%endif
 
 %post
 /sbin/ldconfig
 %fillup_and_insserv -f %{pkg_name}
+%if 0%{?has_systemd}
+%service_add_post %{pkg_name}.service %{pkg_name}.socket
+%endif
 
 %postun
 /sbin/ldconfig
 %insserv_cleanup
 %restart_on_update %{pkg_name}
-
+%if 0%{?has_systemd}
+%service_del_postun %{pkg_name}.service %{pkg_name}.socket
+%endif
 
 %files
 %defattr(-,root,root)
+%if 0%{?has_systemd}
+%{_unitdir}/dovecot.service
+%{_unitdir}/dovecot.socket
+%endif
 %{_sysconfdir}/init.d/%{pkg_name}
 %{_sbindir}/rc%{pkg_name}
 %{_sbindir}/%{pkg_name}
@@ -530,6 +514,7 @@
 %{_libdir}/%{pkg_name}/modules/dict/libdriver_pgsql.so
 
 %if 0%{?with_sqlite}
+
 %files backend-sqlite
 %defattr(-,root,root,-)
 %{_libdir}/%{pkg_name}/modules/libdriver_sqlite.so
@@ -538,12 +523,14 @@
 %endif
 
 %if 0%{?with_clucene}
+
 %files fts-lucene
 %defattr(-,root,root,-)
 %{_libdir}/%{pkg_name}/modules/lib21_fts_lucene_plugin.so
 %endif
 
 %if 0%{?with_solr}
+
 %files fts-solr
 %defattr(-,root,root,-)
 %{_libdir}/%{pkg_name}/modules/lib21_fts_solr_plugin.so

++++++ dovecot-2.0-pigeonhole-0.2.4.tar.bz2 -> 
dovecot-2.0-pigeonhole-0.2.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/NEWS 
new/dovecot-2.0-pigeonhole-0.2.5/NEWS
--- old/dovecot-2.0-pigeonhole-0.2.4/NEWS       2011-09-13 22:29:27.000000000 
+0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/NEWS       2011-11-19 15:47:56.000000000 
+0100
@@ -1,3 +1,18 @@
+v0.2.5 19-11-2011 Stephan Bosch <[email protected]>
+
+       + Sieve vacation extension: made discard message for implicit delivery 
more
+         verbose
+       - The sieve-test tool: mixed up original and final envelope recipient in
+         implementation of command line arguments.
+       - Sieve vacation extension: resolved FIXME regarding the use of 
variables in
+         the :handle argument. Variables are now handled correctly.
+       - Sieve body extension: fixed handling of :content "message/rfc822". 
This now
+         yields the headers of the embedded message as required by the 
specification.
+               Handling of :content "multipart" remains to be fixed.
+       - LDA Sieve plugin: fixed problem with recipient_delimiter 
configuration. Now
+         falls back to global recipient_delimiter setting if
+         plugin/recipient_delimiter is not set.
+
 v0.2.4 13-09-2011 Stephan Bosch <[email protected]>
 
        + Vacation extension: finally added support for using the original 
recipient
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/TODO 
new/dovecot-2.0-pigeonhole-0.2.5/TODO
--- old/dovecot-2.0-pigeonhole-0.2.4/TODO       2011-08-29 16:58:19.000000000 
+0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/TODO       2011-09-17 09:04:33.000000000 
+0200
@@ -34,7 +34,6 @@
          accordingly)
 * Finish body extension:
        - Implement proper :content "multipart" behavior
-       - Implement proper :content "message/rfc822" behavior
        - Build test cases for decoding MIME encodings to UTF-8
 * Cleanup the test suite
        - Restructure test scripts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/configure 
new/dovecot-2.0-pigeonhole-0.2.5/configure
--- old/dovecot-2.0-pigeonhole-0.2.4/configure  2011-09-13 22:26:17.000000000 
+0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/configure  2011-11-19 15:54:12.000000000 
+0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for Pigeonhole 0.2.4.
+# Generated by GNU Autoconf 2.67 for Pigeonhole 0.2.5.
 #
 # Report bugs to <[email protected]>.
 #
@@ -701,8 +701,8 @@
 # Identity of this package.
 PACKAGE_NAME='Pigeonhole'
 PACKAGE_TARNAME='dovecot-2.0-pigeonhole'
-PACKAGE_VERSION='0.2.4'
-PACKAGE_STRING='Pigeonhole 0.2.4'
+PACKAGE_VERSION='0.2.5'
+PACKAGE_STRING='Pigeonhole 0.2.5'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1460,7 +1460,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Pigeonhole 0.2.4 to adapt to many kinds of systems.
+\`configure' configures Pigeonhole 0.2.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1531,7 +1531,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Pigeonhole 0.2.4:";;
+     short | recursive ) echo "Configuration of Pigeonhole 0.2.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1644,7 +1644,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Pigeonhole configure 0.2.4
+Pigeonhole configure 0.2.5
 generated by GNU Autoconf 2.67
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1922,7 +1922,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Pigeonhole $as_me 0.2.4, which was
+It was created by Pigeonhole $as_me 0.2.5, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
@@ -2731,7 +2731,7 @@
 
 # Define the identity of the package.
  PACKAGE='dovecot-2.0-pigeonhole'
- VERSION='0.2.4'
+ VERSION='0.2.5'
 
 
 # Some tools Automake needs.
@@ -11235,7 +11235,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Pigeonhole $as_me 0.2.4, which was
+This file was extended by Pigeonhole $as_me 0.2.5, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11301,7 +11301,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Pigeonhole config.status 0.2.4
+Pigeonhole config.status 0.2.5
 configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/configure.in 
new/dovecot-2.0-pigeonhole-0.2.5/configure.in
--- old/dovecot-2.0-pigeonhole-0.2.4/configure.in       2011-09-13 
22:26:09.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/configure.in       2011-11-19 
15:48:11.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT([Pigeonhole], [0.2.4], [[email protected]], [dovecot-2.0-pigeonhole])
+AC_INIT([Pigeonhole], [0.2.5], [[email protected]], [dovecot-2.0-pigeonhole])
 AC_CONFIG_AUX_DIR([.])
 AC_CONFIG_SRCDIR([src])
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sieve-dump.1.in 
new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sieve-dump.1.in
--- old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sieve-dump.1.in    2011-06-21 
17:18:28.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sieve-dump.1.in    2011-10-05 
18:17:35.000000000 +0200
@@ -1,5 +1,5 @@
 .\" Copyright (c) 2010-2011 Pigeonhole authors, see the included COPYING file
-.TH "SIEVE\-DUMP" 1 "2011-06-21" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
+.TH "SIEVE\-DUMP" 1 "2011-10-04" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
 .\"------------------------------------------------------------------------
 .SH NAME
 sieve\-dump \- Pigeonhole\(aqs Sieve script binary dump tool
@@ -72,7 +72,7 @@
 will exit with one of the following values:
 .TP 4
 .B 0
-Dump was successful. (EX_OK, EXIT_SUCCES)
+Dump was successful. (EX_OK, EXIT_SUCCESS)
 .TP
 .B 1
 Operation failed. This is returned for almost all failures.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sieve-filter.1.in 
new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sieve-filter.1.in
--- old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sieve-filter.1.in  2011-06-21 
17:18:06.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sieve-filter.1.in  2011-10-05 
18:17:28.000000000 +0200
@@ -1,5 +1,5 @@
 .\" Copyright (c) 2010-2011 Pigeonhole authors, see the included COPYING file
-.TH "SIEVE\-FILTER" 1 "2011-02-23" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
+.TH "SIEVE\-FILTER" 1 "2011-10-04" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
 .SH NAME
 sieve\-filter \- Pigeonhole\(aqs Sieve mailbox filter tool
 
@@ -196,7 +196,7 @@
 will exit with one of the following values:
 .TP 4
 .B 0
-Sieve filter applied successfully. (EX_OK, EXIT_SUCCES)
+Sieve filter applied successfully. (EX_OK, EXIT_SUCCESS)
 .TP
 .B 1
 Operation failed. This is returned for almost all failures.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sieve-test.1.in 
new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sieve-test.1.in
--- old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sieve-test.1.in    2011-06-21 
17:18:14.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sieve-test.1.in    2011-10-05 
18:26:05.000000000 +0200
@@ -1,5 +1,5 @@
 .\" Copyright (c) 2010-2011 Pigeonhole authors, see the included COPYING file
-.TH "SIEVE\-TEST" 1 "2011-06-21" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
+.TH "SIEVE\-TEST" 1 "2011-10-04" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
 .SH NAME
 sieve\-test \- Pigeonhole\(aqs Sieve script tester
 .\"------------------------------------------------------------------------
@@ -32,6 +32,15 @@
 .\"------------------------------------------------------------------------
 .SH OPTIONS
 .TP
+.BI \-a\  orig\-recipient\-address
+The original envelope recipient address. This is what Sieve\(aqs envelope test
+will compare to when the \(dqto\(dq envelope part is requested. Some tests and
+actions will also use this as the script owner\(aqs e\-mail address. If this
+option is omitted, the recipient address is retrieved from the
+\(dqEnvelope-To:\(dq, or \(dqTo:\(dq message headers. If none of these headers
+is present either, the recipient address defaults to
+\[email protected]\fP.
+.TP
 .BI \-c\  config\-file
 Alternative Dovecot configuration file path.
 .TP
@@ -58,9 +67,12 @@
 SMTP recipients. Such actions only print the outgoing message to \fBstdout\fP.
 .TP
 .BI \-f\  envelope\-sender
-The envelope sender or return path. This is what Sieve\(aqs envelope test will
-compare to when the \(dqfrom\(dq envelope part is requested. Also, this is
-where response messages are sent to.
+The envelope sender address (return path). This is what Sieve\(aqs envelope 
test
+will compare to when the \(dqfrom\(dq envelope part is requested. Also, this is
+where response messages are \(aqsent\(aq to. If this option is omitted, the 
sender
+address is retrieved from the \(dqReturn-Path:\(dq, \(dqSender:\(dq or
+\(dqFrom:\(dq message headers. If none of these headers is present either,
+the sender envelope address defaults to \[email protected]\fP.
 .TP
 .BI \-l\  mail\-location
 The location of the user\(aqs mail store. The syntax of this option\(aqs
@@ -75,9 +87,11 @@
 by default.
 .TP
 .BI \-r\  recipient\-address
-The envelope recipient address. This is what Sieve\(aqs envelope test will 
compare
-to when the \(dqto\(dq envelope part is requested. Some tests and actions will 
also
-use this as the owner\(aqs e\-mail address.
+The final envelope recipient address. Some tests and actions will
+use this as the script owner\(aqs e\-mail address. For example, this is what is
+used by the vacation action to check whether a reply is appropriate. If the
+\fB\-r\fP option is omitted, the orignal envelope recipient address will be 
used
+in stead (see \fB\-a\fP option for more info). 
 .TP
 .BI \-s\  script\-file
 Specify additional scripts to be executed before the main script. Multiple
@@ -196,7 +210,7 @@
 will exit with one of the following values:
 .TP 4
 .B 0
-Execution was successful. (EX_OK, EXIT_SUCCES)
+Execution was successful. (EX_OK, EXIT_SUCCESS)
 .TP
 .B 1
 Operation failed. This is returned for almost all failures.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sievec.1.in 
new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sievec.1.in
--- old/dovecot-2.0-pigeonhole-0.2.4/doc/man/sievec.1.in        2011-06-21 
17:16:49.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/doc/man/sievec.1.in        2011-10-05 
18:23:31.000000000 +0200
@@ -1,5 +1,5 @@
 .\" Copyright (c) 2010-2011 Pigeonhole authors, see the included COPYING file
-.TH "SIEVEC" 1 "2011-06-21" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
+.TH "SIEVEC" 1 "2011-10-04" "Pigeonhole for Dovecot v2.0" "Pigeonhole"
 .\"------------------------------------------------------------------------
 .SH NAME
 sievec \- Pigeonhole\(aqs Sieve script compiler
@@ -32,7 +32,8 @@
 extension as Sieve scripts and corresponding files with a \fB.svbin\fP 
extension
 as the associated compiled binary. This means for example that Dovecot\(aqs LDA
 process will first look for a binary file \(dqdovecot.svbin\(dq when it needs 
to
-execute \(dqdovecot.sieve\(dq. It will compile a new binary when it is missing.
+execute \(dqdovecot.sieve\(dq. It will compile a new binary when it is missing
+or outdated.
 .PP
 The \fBsievec\fP command is also useful to verify Sieve scripts before using.
 Additionally, with the \fB\-d\fP option it can output a textual (and thus
@@ -82,16 +83,16 @@
 .TP
 .I out\-file
 Specifies where the (binary) output is to be written. This argument is 
optional.
-If omitted a binary compiled from <scriptname>.sieve is saved as
-<scriptname>.svbin. If \fB\-b\fP is specified, the binary dump is output to
-\fBstdout\fP.
+If this argument is omitted, a binary compiled from <scriptname>.sieve is saved
+as <scriptname>.svbin. If this argument is omitted and \fB\-b\fP is specified,
+the binary dump is output to \fBstdout\fP.
 .\"------------------------------------------------------------------------
 .SH "EXIT STATUS"
 .B sievec
 will exit with one of the following values:
 .TP 4
 .B 0
-Compile was successful. (EX_OK, EXIT_SUCCES)
+Compile was successful. (EX_OK, EXIT_SUCCESS)
 .TP
 .B 1
 Operation failed. This is returned for almost all failures.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/lib-sieve/plugins/body/ext-body-common.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/lib-sieve/plugins/body/ext-body-common.c
--- 
old/dovecot-2.0-pigeonhole-0.2.4/src/lib-sieve/plugins/body/ext-body-common.c   
    2011-04-16 22:15:51.000000000 +0200
+++ 
new/dovecot-2.0-pigeonhole-0.2.5/src/lib-sieve/plugins/body/ext-body-common.c   
    2011-09-17 09:04:33.000000000 +0200
@@ -61,12 +61,14 @@
        i_assert( wanted_types != NULL );
 
        for (; *wanted_types != NULL; wanted_types++) {
-               const char *wanted_subtype = strchr(*wanted_types, '/');
+               const char *wanted_subtype;
 
                if (**wanted_types == '\0') {
                        /* empty string matches everything */
                        return TRUE;
                }
+
+               wanted_subtype = strchr(*wanted_types, '/');
                if (wanted_subtype == NULL) {
                        /* match only main type */
                        if (strlen(*wanted_types) == type_len &&
@@ -112,7 +114,7 @@
 
                /* Add new item to the result */
                return_part = array_append_space(&ctx->return_body_parts);
-               
+
                /* Depending on whether a decoded body part is requested, the 
appropriate
                 * cache item is read. If it is missing, this function fails 
and the cache 
                 * needs to be completed by ext_body_parts_add_missing().
@@ -134,7 +136,7 @@
 }
 
 static void ext_body_part_save
-(struct ext_body_message_context *ctx, struct message_part *part,
+(struct ext_body_message_context *ctx,
        struct ext_body_part_cached *body_part, bool decoded)
 {
        buffer_t *buf = ctx->tmp_buffer;
@@ -154,8 +156,6 @@
        if ( !decoded ) {
                body_part->raw_body = part_data;
                body_part->raw_body_size = part_size;
-               printf("%ld <=> %ld\n", (long) buf->used - 1, (long) 
part->body_size.physical_size);
-               i_assert(buf->used - 1 == part->body_size.physical_size);
        } else {
                body_part->decoded_body = part_data;
                body_part->decoded_body_size = part_size;
@@ -195,7 +195,7 @@
 (const struct sieve_message_data *msgdata, struct ext_body_message_context 
*ctx, 
        const char * const *content_types, bool decode_to_plain)
 {
-       struct ext_body_part_cached *body_part = NULL;
+       struct ext_body_part_cached *body_part = NULL, *header_part = NULL;
        struct message_parser_ctx *parser;
        struct message_decoder_context *decoder;
        struct message_block block, decoded;
@@ -214,25 +214,50 @@
        /* Get the message stream */
        if ( mail_get_stream(msgdata->mail, NULL, NULL, &input) < 0 )
                return FALSE;
-               
+       //if (mail_get_parts(msgdata->mail, &parts) < 0)
+       //      return FALSE;
+
        buffer_set_used_size(ctx->tmp_buffer, 0);
        
        /* Initialize body decoder */
-       decoder = decode_to_plain ? message_decoder_init(FALSE) : NULL;
-       
+       decoder = decode_to_plain ? message_decoder_init(FALSE) : NULL; 
+
+       //parser = message_parser_init_from_parts(parts, input, 0, 0);
        parser = message_parser_init(ctx->pool, input, 0, 0);
+
        while ( (ret = message_parser_parse_next_block(parser, &block)) > 0 ) {
+
                if ( block.part != prev_part ) {
+                       bool message_rfc822 = FALSE;
+
                        /* Save previous body part */
-                       if ( body_part != NULL && save_body ) {
-                               ext_body_part_save(ctx, prev_part, body_part, 
decoder != NULL);
+                       if ( body_part != NULL ) {
+                               /* Treat message/rfc822 separately; headers 
become content */
+                               if ( block.part->parent == prev_part &&
+                                       strcmp(body_part->content_type, 
"message/rfc822") == 0 ) {
+                                       message_rfc822 = TRUE;
+                               } else {
+                                       if ( save_body ) 
+                                               ext_body_part_save(ctx, 
body_part, decoder != NULL);
+                               }
                        }
-                       
+
                        /* Start processing next */
-                       prev_part = block.part;
                        body_part = 
array_idx_modifiable(&ctx->cached_body_parts, idx);
-                       idx++;
                        body_part->content_type = "text/plain";
+
+                       /* If this is message/rfc822 content retain the 
enveloping part for
+                        * storing headers as content.
+                        */
+                       if ( message_rfc822 ) {
+                               i_assert(idx > 0);
+                               header_part = 
array_idx_modifiable(&ctx->cached_body_parts, idx-1);
+                       } else {
+                               header_part = NULL;
+                       }
+
+                       prev_part = block.part;
+                       idx++;  
                }
                
                if ( block.hdr != NULL || block.size == 0 ) {
@@ -244,6 +269,12 @@
 
                        /* Check for end of headers */
                        if ( block.hdr == NULL ) {
+                               /* Save headers for message/rfc822 part */
+                               if ( header_part != NULL ) {
+                                       ext_body_part_save(ctx, header_part, 
decoder != NULL);
+                                       header_part = NULL;
+                               }
+       
                                /* Save bodies only if we have a wanted 
content-type */
                                save_body = _is_wanted_content_type
                                        (content_types, 
body_part->content_type);
@@ -255,9 +286,22 @@
                         */
                        if ( block.hdr->eoh )
                                body_part->have_body = TRUE;
+                       else if ( header_part != NULL ) {
+                               /* Save message/rfc822 header as part content */
+                               if ( block.hdr->continued ) {
+                                       buffer_append(ctx->tmp_buffer, 
block.hdr->value, block.hdr->value_len);
+                               } else {
+                                       buffer_append(ctx->tmp_buffer, 
block.hdr->name, block.hdr->name_len);
+                                       buffer_append(ctx->tmp_buffer, 
block.hdr->middle, block.hdr->middle_len);
+                                       buffer_append(ctx->tmp_buffer, 
block.hdr->value, block.hdr->value_len);
+                               }
+                               if ( !block.hdr->no_newline ) {
+                                       buffer_append(ctx->tmp_buffer, "\r\n", 
2);
+                               }
+                       }
                                
                        /* We're interested of only Content-Type: header */
-                       if ( strcasecmp(block.hdr->name, "Content-Type" ) != 0)
+                       if ( strcasecmp(block.hdr->name, "Content-Type" ) != 0 )
                                continue;
 
                        /* Header can have folding whitespace. Acquire the full 
value before 
@@ -289,8 +333,11 @@
        }
 
        /* Save last body part if necessary */
-       if ( body_part != NULL && save_body )
-               ext_body_part_save(ctx, prev_part, body_part, decoder != NULL);
+       if ( header_part != NULL ) {
+               ext_body_part_save(ctx, header_part, decoder != NULL);
+       } else if ( body_part != NULL && save_body ) {
+               ext_body_part_save(ctx, body_part, decoder != NULL);
+       }
 
        /* Try to fill the return_body_parts array once more */
        have_all = ext_body_get_return_parts(ctx, content_types, 
decode_to_plain);
@@ -310,7 +357,6 @@
 static struct ext_body_message_context *ext_body_get_context
 (const struct sieve_extension *this_ext, struct sieve_message_context *msgctx)
 {
-       pool_t pool = sieve_message_context_pool(msgctx);
        struct ext_body_message_context *ctx;
        
        /* Get message context (contains cached message body information) */
@@ -319,8 +365,12 @@
        
        /* Create it if it does not exist already */
        if ( ctx == NULL ) {
+               pool_t pool;
+
+               pool = sieve_message_context_pool(msgctx);
                ctx = p_new(pool, struct ext_body_message_context, 1);  
                ctx->pool = pool;
+
                p_array_init(&ctx->cached_body_parts, pool, 8);
                p_array_init(&ctx->return_body_parts, pool, 8);
                ctx->tmp_buffer = buffer_create_dynamic(pool, 1024*64);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/lib-sieve/plugins/vacation/cmd-vacation.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/lib-sieve/plugins/vacation/cmd-vacation.c
--- 
old/dovecot-2.0-pigeonhole-0.2.4/src/lib-sieve/plugins/vacation/cmd-vacation.c  
    2011-08-02 17:48:33.000000000 +0200
+++ 
new/dovecot-2.0-pigeonhole-0.2.5/src/lib-sieve/plugins/vacation/cmd-vacation.c  
    2011-10-05 19:08:54.000000000 +0200
@@ -231,7 +231,7 @@
        
        bool mime;
        
-       string_t *handle;
+       struct sieve_ast_argument *handle_arg;
 };
 
 /* 
@@ -348,10 +348,10 @@
                *arg = sieve_ast_argument_next(*arg);
                
        } else if ( sieve_argument_is(tag, vacation_handle_tag) ) {
-               ctx_data->handle = sieve_ast_argument_str(*arg);
-               
+               ctx_data->handle_arg = *arg;            
+
                /* Detach optional argument (emitted as mandatory) */
-               *arg = sieve_ast_arguments_detach(*arg,1);
+               *arg = sieve_ast_arguments_detach(*arg, 1);
        }
                        
        return TRUE;
@@ -468,34 +468,48 @@
                return FALSE;
                
        /* Construct handle if not set explicitly */
-       if ( ctx_data->handle == NULL ) {
-               string_t *reason = sieve_ast_argument_str(arg);
-               unsigned int size = str_len(reason);
-               
-               /* Precalculate the size of it all */
-               size += ctx_data->subject == NULL ? 
-                       sizeof(_handle_empty_subject) - 1 : 
str_len(ctx_data->subject);
-               size += ctx_data->from == NULL ? 
-                       sizeof(_handle_empty_from) - 1 : 
str_len(ctx_data->from); 
-               size += ctx_data->mime ? 
-                       sizeof(_handle_mime_enabled) - 1 : 
sizeof(_handle_mime_disabled) - 1; 
+       if ( ctx_data->handle_arg == NULL ) {
+               T_BEGIN {
+                       string_t *handle;
+                       string_t *reason = sieve_ast_argument_str(arg);
+                       unsigned int size = str_len(reason);
+               
+                       /* Precalculate the size of it all */
+                       size += ctx_data->subject == NULL ? 
+                               sizeof(_handle_empty_subject) - 1 : 
str_len(ctx_data->subject);
+                       size += ctx_data->from == NULL ? 
+                               sizeof(_handle_empty_from) - 1 : 
str_len(ctx_data->from); 
+                       size += ctx_data->mime ? 
+                               sizeof(_handle_mime_enabled) - 1 : 
sizeof(_handle_mime_disabled) - 1; 
                        
-               /* Construct the string */
-               ctx_data->handle = str_new(sieve_command_pool(cmd), size);
-               str_append_str(ctx_data->handle, reason);
-               
-               if ( ctx_data->subject != NULL )
-                       str_append_str(ctx_data->handle, ctx_data->subject);
-               else
-                       str_append(ctx_data->handle, _handle_empty_subject);
-               
-               if ( ctx_data->from != NULL )
-                       str_append_str(ctx_data->handle, ctx_data->from);
-               else
-                       str_append(ctx_data->handle, _handle_empty_from);
+                       /* Construct the string */
+                       handle = t_str_new(size);
+                       str_append_str(handle, reason);
+               
+                       if ( ctx_data->subject != NULL )
+                               str_append_str(handle, ctx_data->subject);
+                       else
+                               str_append(handle, _handle_empty_subject);
+               
+                       if ( ctx_data->from != NULL )
+                               str_append_str(handle, ctx_data->from);
+                       else
+                               str_append(handle, _handle_empty_from);
                        
-               str_append(ctx_data->handle, 
-                       ctx_data->mime ? _handle_mime_enabled : 
_handle_mime_disabled );
+                       str_append(handle, 
+                               ctx_data->mime ? _handle_mime_enabled : 
_handle_mime_disabled );
+               
+                       /* Create positional handle argument */
+                       ctx_data->handle_arg = sieve_ast_argument_string_create
+                               (cmd->ast_node, handle, 
sieve_ast_node_line(cmd->ast_node));
+               } T_END;
+
+               if ( !sieve_validator_argument_activate
+                       (valdtr, cmd, ctx_data->handle_arg, TRUE) )
+                       return FALSE;
+       } else {
+               /* Attach explicit handle argument as positional */
+               (void)sieve_ast_argument_attach(cmd->ast_node, 
ctx_data->handle_arg);
        }
        
        return TRUE;
@@ -507,18 +521,12 @@
  
 static bool cmd_vacation_generate
 (const struct sieve_codegen_env *cgenv, struct sieve_command *cmd) 
-{
-       struct cmd_vacation_context_data *ctx_data = 
-               (struct cmd_vacation_context_data *) cmd->data;
-                
+{               
        sieve_operation_emit(cgenv->sblock, cmd->ext, &vacation_operation);
 
        /* Generate arguments */
        if ( !sieve_generate_arguments(cgenv, cmd, NULL) )
                return FALSE;   
-
-       /* FIXME: this will not allow the handle to be a variable */
-       sieve_opr_string_emit(cgenv->sblock, ctx_data->handle);
                
        return TRUE;
 }
@@ -779,13 +787,13 @@
                (struct act_vacation_context *) action->context;
        
        sieve_result_action_printf( rpenv, "send vacation message:");
-       sieve_result_printf(rpenv, "    => seconds   : %d\n", ctx->seconds);
+       sieve_result_printf(rpenv, "    => seconds : %d\n", ctx->seconds);
        if ( ctx->subject != NULL )
-               sieve_result_printf(rpenv, "    => subject: %s\n", 
ctx->subject);
+               sieve_result_printf(rpenv, "    => subject : %s\n", 
ctx->subject);
        if ( ctx->from != NULL )
-               sieve_result_printf(rpenv, "    => from   : %s\n", ctx->from);
+               sieve_result_printf(rpenv, "    => from    : %s\n", ctx->from);
        if ( ctx->handle != NULL )
-               sieve_result_printf(rpenv, "    => handle : %s\n", ctx->handle);
+               sieve_result_printf(rpenv, "    => handle  : %s\n", 
ctx->handle);
        sieve_result_printf(rpenv, "\nSTART MESSAGE\n%s\nEND MESSAGE\n", 
ctx->reason);
 }
 
@@ -1176,10 +1184,23 @@
 
                /* My address not found in the headers; we got an implicit 
delivery */
                if ( *hdsp == NULL ) {
+                       const char *original_recipient = "";
+
                        /* No, bail out */
+
+                       if ( config->use_original_recipient ) {
+                               original_recipient = 
t_strdup_printf("original-recipient=<%s>, ",
+                                       ( orig_recipient == NULL ? 
"UNAVAILABLE" :
+                                               str_sanitize(orig_recipient, 
128) ));
+                       }
+
                        sieve_result_global_log(aenv,
-                               "discarding vacation response for message 
implicitly delivered to <%s>",
-                               recipient );
+                               "discarding vacation response for implicitly 
delivered message; "
+                               "no known (envelope) recipient address found in 
message headers "
+                               "(recipient=<%s>, %sand%s additional 
`:addresses' are specified)",
+                               str_sanitize(recipient, 128), 
original_recipient,
+                               (ctx->addresses == NULL ? " no" : ""));
+
                        return TRUE;
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/managesieve-login/managesieve-login-settings.c
 
new/dovecot-2.0-pigeonhole-0.2.5/src/managesieve-login/managesieve-login-settings.c
--- 
old/dovecot-2.0-pigeonhole-0.2.4/src/managesieve-login/managesieve-login-settings.c
 2011-04-16 22:15:51.000000000 +0200
+++ 
new/dovecot-2.0-pigeonhole-0.2.5/src/managesieve-login/managesieve-login-settings.c
 2011-11-09 17:19:23.000000000 +0100
@@ -51,7 +51,7 @@
        .client_limit = 0,
        .service_count = 1,
        .idle_kill = 0,
-       .vsz_limit = 64*1024*1024,
+       .vsz_limit = (uoff_t)-1,
 
        .unix_listeners = ARRAY_INIT,
        .fifo_listeners = ARRAY_INIT,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/plugins/lda-sieve/lda-sieve-plugin.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/plugins/lda-sieve/lda-sieve-plugin.c
--- old/dovecot-2.0-pigeonhole-0.2.4/src/plugins/lda-sieve/lda-sieve-plugin.c   
2011-06-06 16:45:01.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/src/plugins/lda-sieve/lda-sieve-plugin.c   
2011-09-17 09:04:37.000000000 +0200
@@ -42,13 +42,13 @@
 static const char *lda_sieve_get_homedir
 (void *context)
 {
-       struct mail_user *mail_user = (struct mail_user *) context;
+       struct mail_deliver_context *mdctx = (struct mail_deliver_context 
*)context;
        const char *home = NULL;
 
-       if ( mail_user == NULL )
+       if ( mdctx == NULL || mdctx->dest_user == NULL )
                return NULL;
 
-       if ( mail_user_get_home(mail_user, &home) <= 0 )
+       if ( mail_user_get_home(mdctx->dest_user, &home) <= 0 )
                return NULL;
 
        return home;
@@ -57,12 +57,19 @@
 static const char *lda_sieve_get_setting
 (void *context, const char *identifier)
 {
-       struct mail_user *mail_user = (struct mail_user *) context;
+       struct mail_deliver_context *mdctx = (struct mail_deliver_context 
*)context;
+       const char *value = NULL;
 
-       if ( mail_user == NULL )
+       if ( mdctx == NULL )
                return NULL;
 
-       return mail_user_plugin_getenv(mail_user, identifier);  
+       if ( mdctx->dest_user == NULL ||
+               (value=mail_user_plugin_getenv(mdctx->dest_user, identifier)) 
== NULL ) {
+               if ( strcmp(identifier, "recipient_delimiter") == 0 )
+                       value = mdctx->set->recipient_delimiter;
+       }
+
+       return value;
 }
 
 static const struct sieve_environment lda_sieve_env = {
@@ -665,7 +672,7 @@
 
        /* Initialize Sieve engine */
 
-       svinst = sieve_init(&lda_sieve_env, mdctx->dest_user, debug);
+       svinst = sieve_init(&lda_sieve_env, mdctx, debug);
 
        /* Initialize master error handler */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/sieve-tools/sieve-dump.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/sieve-tools/sieve-dump.c
--- old/dovecot-2.0-pigeonhole-0.2.4/src/sieve-tools/sieve-dump.c       
2011-06-06 13:19:18.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/src/sieve-tools/sieve-dump.c       
2011-10-05 18:43:08.000000000 +0200
@@ -28,7 +28,7 @@
 static void print_help(void)
 {
        printf(
-"Usage: sieve-dump [-h] [-P <plugin>] [-x <extensions>]\n"
+"Usage: sieve-dump [-c <config-file>] [-h] [-P <plugin>] [-x <extensions>]\n"
 "                  <sieve-binary> [<out-file>]\n"
        );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/sieve-tools/sieve-test.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/sieve-tools/sieve-test.c
--- old/dovecot-2.0-pigeonhole-0.2.4/src/sieve-tools/sieve-test.c       
2011-06-22 22:07:30.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/src/sieve-tools/sieve-test.c       
2011-10-05 19:00:18.000000000 +0200
@@ -42,7 +42,8 @@
 static void print_help(void)
 {
        printf(
-"Usage: sieve-test [-c <config-file>] [-C] [-D] [-d <dump-filename>] [-e]\n"
+"Usage: sieve-test [-a <orig-recipient-address] [-c <config-file>]\n"
+"                  [-C] [-D] [-d <dump-filename>] [-e]\n"
 "                  [-f <envelope-sender>] [-l <mail-location>]\n"
 "                  [-m <default-mailbox>] [-P <plugin>]\n"
 "                  [-r <recipient-address>] [-s <script-file>]\n"
@@ -131,13 +132,13 @@
        while ((c = sieve_tool_getopt(sieve_tool)) > 0) {
                switch (c) {
                case 'r':
-                       /* original recipient address */
-                       recipient = optarg;
-                       break;
-               case 'a':
                        /* final recipient address */
                        final_recipient = optarg;
                        break;
+               case 'a':
+                       /* original recipient address */
+                       recipient = optarg;
+                       break;
                case 'f':
                        /* envelope sender address */
                        sender = optarg;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/sieve-tools/sievec.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/sieve-tools/sievec.c
--- old/dovecot-2.0-pigeonhole-0.2.4/src/sieve-tools/sievec.c   2011-08-09 
20:59:02.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/src/sieve-tools/sievec.c   2011-10-05 
18:42:06.000000000 +0200
@@ -30,7 +30,7 @@
 static void print_help(void)
 {
        printf(
-"Usage: sievec [-d] [-P <plugin>] [-x <extensions>] \n"
+"Usage: sievec  [-c <config-file>] [-d] [-P <plugin>] [-x <extensions>] \n"
 "              <script-file> [<out-file>]\n"
        );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/src/testsuite/testsuite-script.c 
new/dovecot-2.0-pigeonhole-0.2.5/src/testsuite/testsuite-script.c
--- old/dovecot-2.0-pigeonhole-0.2.4/src/testsuite/testsuite-script.c   
2011-09-11 11:27:14.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/src/testsuite/testsuite-script.c   
2011-09-14 17:17:42.000000000 +0200
@@ -41,7 +41,6 @@
 {
        struct sieve_instance *svinst = testsuite_sieve_instance;
        struct sieve_binary *sbin;
-       const char *sieve_dir;
        const char *script_path;
 
        sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS, "compile script `%s'", 
script);
@@ -51,7 +50,7 @@
                return SIEVE_EXEC_FAILURE;
 
        script_path = t_strconcat(script_path, "/", script, NULL);
-       
+
        if ( (sbin = sieve_compile(svinst, script_path, NULL, 
testsuite_log_ehandler,
                NULL)) == NULL )
                return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/tests/extensions/body/content.svtest 
new/dovecot-2.0-pigeonhole-0.2.5/tests/extensions/body/content.svtest
--- old/dovecot-2.0-pigeonhole-0.2.4/tests/extensions/body/content.svtest       
2011-04-16 22:15:51.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/tests/extensions/body/content.svtest       
2011-10-01 11:34:26.000000000 +0200
@@ -204,7 +204,8 @@
 Content-Type: message/rfc822
 
 From: Someone Else
-Subject: hello request
+Subject: Hello, this is an elaborate request for you to finally say hello
+ already!
 
 Please say Hello
 
@@ -313,6 +314,20 @@
  *  matches the :content specification.
  */
 
-/* FIXME */
+test "Content-Type: message/rfc822" {
+       if not body :content "message/rfc822" :contains
+               "From: Someone Else" {
+               test_fail "missed raw message/rfc822 from header";
+       }
+
+       if not body :content "message/rfc822" :is text:
+From: Someone Else
+Subject: Hello, this is an elaborate request for you to finally say hello
+ already!
+.
+       {
+               test_fail "header content does not match exactly";
+       }
+}
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.0-pigeonhole-0.2.4/tests/extensions/vacation/message.svtest 
new/dovecot-2.0-pigeonhole-0.2.5/tests/extensions/vacation/message.svtest
--- old/dovecot-2.0-pigeonhole-0.2.4/tests/extensions/vacation/message.svtest   
2011-04-16 22:15:51.000000000 +0200
+++ new/dovecot-2.0-pigeonhole-0.2.5/tests/extensions/vacation/message.svtest   
2011-10-01 11:28:45.000000000 +0200
@@ -1,5 +1,7 @@
 require "vnd.dovecot.testsuite";
 require "vacation";
+require "variables";
+require "body";
 
 test_set "message" text:
 From: [email protected]
@@ -46,3 +48,43 @@
                test_fail "in-reply-to header set incorrectly";
        }
 }
+
+test_result_reset;
+
+test_set "message" text:
+From: [email protected]
+Subject: frop
+References: <[email protected]> <[email protected]>
+ <[email protected]> <[email protected]> <[email protected]>
+Message-ID: <[email protected]>
+To: [email protected]
+
+Frop
+.
+;
+
+test "Variables" {
+       set "message" "I am not in today!";
+       set "subject" "Out of office";
+       set "from" "[email protected]";
+
+       vacation :from "${from}" :subject "${subject}" "${message}";
+
+       if not test_result_execute {
+               test_fail "execution of result failed";
+       }
+
+       test_message :smtp 0;
+
+       if not header :contains "subject" "Out of office" {
+               test_fail "subject not set properly";
+       }
+
+       if not header :contains "from" "[email protected]" {
+               test_fail "from address not set properly";
+       }
+
+       if not body :contains :raw "I am not in today!" {
+               test_fail "message not set properly";
+       }
+}

++++++ dovecot-2.0-pigeonhole-0.2.4.tar.bz2 -> dovecot-2.0.16.tar.bz2 ++++++
++++ 601438 lines of diff (skipped)

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to