From 7515ec7ff6e37d6a81465580b075841264790b22 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Mon, 12 Mar 2007 16:22:52 +0000 Subject: [PATCH] - update to latest upstream --- .cvsignore | 4 +- ...atch => cyrus-imapd-2.3.7-notify_sms.patch | 92 +++--- ...> cyrus-imapd-2.3.8-autocreate-0.10-0.diff | 272 ++++++++++-------- ... => cyrus-imapd-2.3.8-autosieve-0.6.0.diff | 26 +- ...apd-2.3.8-rmquota+deletemailbox-0.2-1.diff | 257 ++++++++--------- cyrus-imapd.spec | 41 +-- sources | 2 +- 7 files changed, 355 insertions(+), 339 deletions(-) rename cyrus-imapd-2.2.12-notify_sms.patch => cyrus-imapd-2.3.7-notify_sms.patch (76%) rename cyrus-imapd-2.3.1-autocreate-0.10-0.diff => cyrus-imapd-2.3.8-autocreate-0.10-0.diff (89%) rename cyrus-imapd-2.3.1-autosievefolder-0.6-0.diff => cyrus-imapd-2.3.8-autosieve-0.6.0.diff (88%) rename cyrus-imapd-2.3.1-rmquota+deletemailbox-0.2-1.diff => cyrus-imapd-2.3.8-rmquota+deletemailbox-0.2-1.diff (71%) diff --git a/.cvsignore b/.cvsignore index d9795a8..606923d 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,4 +1,2 @@ -cyrus-imapd-2.3.1.tar.gz cyrus_sharedbackup-0.1.tar.gz -autoconf-2.59.tar.gz -cyrus-imapd-2.3.7.tar.gz +cyrus-imapd-2.3.8.tar.gz diff --git a/cyrus-imapd-2.2.12-notify_sms.patch b/cyrus-imapd-2.3.7-notify_sms.patch similarity index 76% rename from cyrus-imapd-2.2.12-notify_sms.patch rename to cyrus-imapd-2.3.7-notify_sms.patch index de4e18b..ec7d6e6 100644 --- a/cyrus-imapd-2.2.12-notify_sms.patch +++ b/cyrus-imapd-2.3.7-notify_sms.patch @@ -1,7 +1,7 @@ -diff -Naur cyrus-imapd-2.2.12.orig/doc/man/imapd.conf.5.html cyrus-imapd-2.2.12/doc/man/imapd.conf.5.html ---- cyrus-imapd-2.2.12.orig/doc/man/imapd.conf.5.html 2005-02-14 19:02:18.000000000 +0100 -+++ cyrus-imapd-2.2.12/doc/man/imapd.conf.5.html 2005-08-16 13:32:36.000000000 +0200 -@@ -2751,6 +2751,24 @@ +diff -Naur cyrus-imapd-2.3.7.orig/doc/man/imapd.conf.5.html cyrus-imapd-2.3.7/doc/man/imapd.conf.5.html +--- cyrus-imapd-2.3.7.orig/doc/man/imapd.conf.5.html 2006-07-10 16:31:53.000000000 +0200 ++++ cyrus-imapd-2.3.7/doc/man/imapd.conf.5.html 2006-07-14 10:27:29.000000000 +0200 +@@ -3130,6 +3130,24 @@ @@ -24,11 +24,11 @@ diff -Naur cyrus-imapd-2.2.12.orig/doc/man/imapd.conf.5.html cyrus-imapd-2.2.12/ + +

servername: <none>

-

+ -diff -Naur cyrus-imapd-2.2.12.orig/doc/man/notifyd.8.html cyrus-imapd-2.2.12/doc/man/notifyd.8.html ---- cyrus-imapd-2.2.12.orig/doc/man/notifyd.8.html 2005-02-14 19:02:19.000000000 +0100 -+++ cyrus-imapd-2.2.12/doc/man/notifyd.8.html 2005-08-16 13:17:33.000000000 +0200 +diff -Naur cyrus-imapd-2.3.7.orig/doc/man/notifyd.8.html cyrus-imapd-2.3.7/doc/man/notifyd.8.html +--- cyrus-imapd-2.3.7.orig/doc/man/notifyd.8.html 2006-07-10 16:31:54.000000000 +0200 ++++ cyrus-imapd-2.3.7/doc/man/notifyd.8.html 2006-07-14 10:27:29.000000000 +0200 @@ -181,6 +181,18 @@ @@ -48,10 +48,10 @@ diff -Naur cyrus-imapd-2.2.12.orig/doc/man/notifyd.8.html cyrus-imapd-2.2.12/doc

zephyr

-diff -Naur cyrus-imapd-2.2.12.orig/lib/imapoptions cyrus-imapd-2.2.12/lib/imapoptions ---- cyrus-imapd-2.2.12.orig/lib/imapoptions 2004-07-21 21:07:45.000000000 +0200 -+++ cyrus-imapd-2.2.12/lib/imapoptions 2005-08-16 13:27:08.000000000 +0200 -@@ -721,6 +721,10 @@ +diff -Naur cyrus-imapd-2.3.7.orig/lib/imapoptions cyrus-imapd-2.3.7/lib/imapoptions +--- cyrus-imapd-2.3.7.orig/lib/imapoptions 2006-06-27 17:58:42.000000000 +0200 ++++ cyrus-imapd-2.3.7/lib/imapoptions 2006-07-14 10:27:29.000000000 +0200 +@@ -829,6 +829,10 @@ /* The pathname of the sendmail executable. Sieve invokes sendmail for sending rejections, redirects and vacation responses. */ @@ -62,10 +62,10 @@ diff -Naur cyrus-imapd-2.2.12.orig/lib/imapoptions cyrus-imapd-2.2.12/lib/imapop { "servername", NULL, STRING } /* This is the hostname visible in the greeting messages of the POP, IMAP and LMTP daemons. If it is unset, then the result returned -diff -Naur cyrus-imapd-2.2.12.orig/man/imapd.conf.5 cyrus-imapd-2.2.12/man/imapd.conf.5 ---- cyrus-imapd-2.2.12.orig/man/imapd.conf.5 2005-02-14 19:02:16.000000000 +0100 -+++ cyrus-imapd-2.2.12/man/imapd.conf.5 2005-08-16 13:35:40.000000000 +0200 -@@ -590,6 +590,9 @@ +diff -Naur cyrus-imapd-2.3.7.orig/man/imapd.conf.5 cyrus-imapd-2.3.7/man/imapd.conf.5 +--- cyrus-imapd-2.3.7.orig/man/imapd.conf.5 2006-07-10 16:31:52.000000000 +0200 ++++ cyrus-imapd-2.3.7/man/imapd.conf.5 2006-07-14 10:27:29.000000000 +0200 +@@ -691,6 +691,9 @@ .IP "\fBsendmail:\fR /usr/lib/sendmail" 5 The pathname of the sendmail executable. Sieve invokes sendmail for sending rejections, redirects and vacation responses. @@ -75,9 +75,9 @@ diff -Naur cyrus-imapd-2.2.12.orig/man/imapd.conf.5 cyrus-imapd-2.2.12/man/imapd .IP "\fBservername:\fR " 5 This is the hostname visible in the greeting messages of the POP, IMAP and LMTP daemons. If it is unset, then the result returned -diff -Naur cyrus-imapd-2.2.12.orig/man/notifyd.8 cyrus-imapd-2.2.12/man/notifyd.8 ---- cyrus-imapd-2.2.12.orig/man/notifyd.8 2003-08-10 01:43:14.000000000 +0200 -+++ cyrus-imapd-2.2.12/man/notifyd.8 2005-08-16 13:18:03.000000000 +0200 +diff -Naur cyrus-imapd-2.3.7.orig/man/notifyd.8 cyrus-imapd-2.3.7/man/notifyd.8 +--- cyrus-imapd-2.3.7.orig/man/notifyd.8 2003-08-10 01:43:14.000000000 +0200 ++++ cyrus-imapd-2.3.7/man/notifyd.8 2006-07-14 10:27:29.000000000 +0200 @@ -110,6 +110,11 @@ Sieve 'notify' action as it requires a \fImailto:\fR URL to be specified as an \fI:option\fR. @@ -90,9 +90,9 @@ diff -Naur cyrus-imapd-2.2.12.orig/man/notifyd.8 cyrus-imapd-2.2.12/man/notifyd. .B zephyr Send the notification as a zephyrgram. If used in a Sieve 'notify' action, additional recipients can be specified as \fI:options\fR. -diff -Naur cyrus-imapd-2.2.12.orig/notifyd/Makefile.in cyrus-imapd-2.2.12/notifyd/Makefile.in ---- cyrus-imapd-2.2.12.orig/notifyd/Makefile.in 2004-05-28 20:03:06.000000000 +0200 -+++ cyrus-imapd-2.2.12/notifyd/Makefile.in 2005-08-16 15:18:45.000000000 +0200 +diff -Naur cyrus-imapd-2.3.7.orig/notifyd/Makefile.in cyrus-imapd-2.3.7/notifyd/Makefile.in +--- cyrus-imapd-2.3.7.orig/notifyd/Makefile.in 2004-05-31 20:22:59.000000000 +0200 ++++ cyrus-imapd-2.3.7/notifyd/Makefile.in 2006-07-14 10:27:29.000000000 +0200 @@ -82,7 +82,7 @@ install: $(INSTALL) -m 755 notifyd $(DESTDIR)$(service_path) @@ -102,9 +102,9 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/Makefile.in cyrus-imapd-2.2.12/notify notifytest: notifytest.o $(CC) $(LDFLAGS) -o notifytest \ -diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notifyd.h cyrus-imapd-2.2.12/notifyd/notifyd.h ---- cyrus-imapd-2.2.12.orig/notifyd/notifyd.h 2003-02-13 21:15:48.000000000 +0100 -+++ cyrus-imapd-2.2.12/notifyd/notifyd.h 2005-08-16 12:58:17.000000000 +0200 +diff -Naur cyrus-imapd-2.3.7.orig/notifyd/notifyd.h cyrus-imapd-2.3.7/notifyd/notifyd.h +--- cyrus-imapd-2.3.7.orig/notifyd/notifyd.h 2003-02-13 21:15:48.000000000 +0100 ++++ cyrus-imapd-2.3.7/notifyd/notifyd.h 2006-07-14 10:27:29.000000000 +0200 @@ -48,6 +48,7 @@ #include "notify_null.h" #include "notify_log.h" @@ -121,10 +121,10 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notifyd.h cyrus-imapd-2.2.12/notifyd/ #ifdef HAVE_ZEPHYR { "zephyr", notify_zephyr }, /* send a zephyrgram */ #endif -diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.c cyrus-imapd-2.2.12/notifyd/notify_sms.c ---- cyrus-imapd-2.2.12.orig/notifyd/notify_sms.c 1970-01-01 01:00:00.000000000 +0100 -+++ cyrus-imapd-2.2.12/notifyd/notify_sms.c 2005-08-16 18:43:56.000000000 +0200 -@@ -0,0 +1,111 @@ +diff -Naur cyrus-imapd-2.3.7.orig/notifyd/notify_sms.c cyrus-imapd-2.3.7/notifyd/notify_sms.c +--- cyrus-imapd-2.3.7.orig/notifyd/notify_sms.c 1970-01-01 01:00:00.000000000 +0100 ++++ cyrus-imapd-2.3.7/notifyd/notify_sms.c 2006-07-14 10:29:10.000000000 +0200 +@@ -0,0 +1,116 @@ +/* notify_sms.c -- SMS notification method + * Simon Matter + */ @@ -168,8 +168,8 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.c cyrus-imapd-2.2.12/notif + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * notify_sms is based on code from notify_mailto by Ken Murchison. -+ * Copyright (c) 2005 Simon Matter, Invoca Systems. -+ * Release 2005081600/2.2.12 ++ * Copyright (c) 2005-2006 Simon Matter, Invoca Systems. ++ * Release 2006071300/2.3.7 +*/ + +#include @@ -189,8 +189,8 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.c cyrus-imapd-2.2.12/notif +static int global_outgoing_count = 0; + +char* notify_sms(const char *class __attribute__((unused)), -+ const char *priority __attribute__((unused)), -+ const char *user __attribute__((unused)), ++ const char *priority, ++ const char *user, + const char *mailbox __attribute__((unused)), + int nopt, char **options, + const char *message) @@ -206,8 +206,13 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.c cyrus-imapd-2.2.12/notif + return strdup("NO sms URI not specified"); + + smbuf[0] = "sendsms"; -+ smbuf[1] = options[0]; -+ smbuf[2] = NULL; ++ smbuf[1] = "-u"; ++ smbuf[2] = user; ++ smbuf[3] = "-p"; ++ smbuf[4] = priority; ++ smbuf[5] = "-o"; ++ smbuf[6] = options[0]; ++ smbuf[7] = NULL; + + pipe(fds); + if ((sm_pid = fork()) == 0) { @@ -236,10 +241,10 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.c cyrus-imapd-2.2.12/notif + + return strdup("OK sms notification successful"); +} -diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.h cyrus-imapd-2.2.12/notifyd/notify_sms.h ---- cyrus-imapd-2.2.12.orig/notifyd/notify_sms.h 1970-01-01 01:00:00.000000000 +0100 -+++ cyrus-imapd-2.2.12/notifyd/notify_sms.h 2005-08-16 14:57:16.000000000 +0200 -@@ -0,0 +1,62 @@ +diff -Naur cyrus-imapd-2.3.7.orig/notifyd/notify_sms.h cyrus-imapd-2.3.7/notifyd/notify_sms.h +--- cyrus-imapd-2.3.7.orig/notifyd/notify_sms.h 1970-01-01 01:00:00.000000000 +0100 ++++ cyrus-imapd-2.3.7/notifyd/notify_sms.h 2006-07-14 10:29:10.000000000 +0200 +@@ -0,0 +1,61 @@ +/* notify_sms.h -- SMS notification method + * Simon Matter + */ @@ -283,8 +288,8 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.h cyrus-imapd-2.2.12/notif + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * notify_sms is based on code from notify_mailto by Ken Murchison. -+ * Copyright (c) 2005 Simon Matter, Invoca Systems. -+ * Release 2005081600/2.2.12 ++ * Copyright (c) 2005-2006 Simon Matter, Invoca Systems. ++ * Release 2006071300/2.3.7 + * + */ + @@ -293,10 +298,9 @@ diff -Naur cyrus-imapd-2.2.12.orig/notifyd/notify_sms.h cyrus-imapd-2.2.12/notif + +#include + -+/* the only option should be a sms URI */ +char* notify_sms(const char *class __attribute__((unused)), -+ const char *priority __attribute__((unused)), -+ const char *user __attribute__((unused)), ++ const char *priority, ++ const char *user, + const char *mailbox __attribute__((unused)), + int nopt, char **options, + const char *message); diff --git a/cyrus-imapd-2.3.1-autocreate-0.10-0.diff b/cyrus-imapd-2.3.8-autocreate-0.10-0.diff similarity index 89% rename from cyrus-imapd-2.3.1-autocreate-0.10-0.diff rename to cyrus-imapd-2.3.8-autocreate-0.10-0.diff index 48aa75d..893e88a 100644 --- a/cyrus-imapd-2.3.1-autocreate-0.10-0.diff +++ b/cyrus-imapd-2.3.8-autocreate-0.10-0.diff @@ -1,6 +1,6 @@ -diff -Naur cyrus-imapd-2.3.1/README.autocreate cyrus-imapd-2.3.1-autocreate/README.autocreate ---- cyrus-imapd-2.3.1/README.autocreate 1970-01-01 02:00:00 +0200 -+++ cyrus-imapd-2.3.1-autocreate/README.autocreate 2006-01-19 03:53:40 +0200 +diff -Naur cyrus-imapd-2.3.8/README.autocreate cyrus-imapd-2.3.8-autocreate.uncompiled/README.autocreate +--- cyrus-imapd-2.3.8/README.autocreate 1970-01-01 02:00:00.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/README.autocreate 2007-02-13 14:05:07.000000000 +0200 @@ -0,0 +1,211 @@ +Cyrus IMAP autocreate Inbox patch +---------------------------------- @@ -213,20 +213,20 @@ diff -Naur cyrus-imapd-2.3.1/README.autocreate cyrus-imapd-2.3.1-autocreate/READ + +For more information and updates please visit http://email.uoa.gr/projects/cyrus/autocreate + -diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/Makefile.in ---- cyrus-imapd-2.3.1/imap/Makefile.in 2005-12-13 17:28:43 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/Makefile.in 2006-01-19 03:53:41 +0200 +diff -Naur cyrus-imapd-2.3.8/imap/Makefile.in cyrus-imapd-2.3.8-autocreate.uncompiled/imap/Makefile.in +--- cyrus-imapd-2.3.8/imap/Makefile.in 2007-01-09 19:41:35.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/Makefile.in 2007-02-14 10:16:04.000000000 +0200 @@ -101,7 +101,7 @@ convert_code.o duplicate.o saslclient.o saslserver.o signals.o \ annotate.o search_engines.o squat.o squat_internal.o mbdump.o \ imapparse.o telemetry.o user.o notify.o protocol.o idle.o quota_db.o \ -- sync_log.o $(SEEN) mboxkey.o -+ sync_log.o autosieve.o $(SEEN) mboxkey.o +- sync_log.o $(SEEN) mboxkey.o backend.o tls.o ++ sync_log.o autosieve.o $(SEEN) mboxkey.o backend.o tls.o - IMAPDOBJS=pushstats.o backend.o imapd.o proxy.o imap_proxy.o index.o \ - tls.o version.o -@@ -118,7 +118,7 @@ - fud smmapd reconstruct quota mbpath ipurge \ + IMAPDOBJS=pushstats.o imapd.o proxy.o imap_proxy.o index.o version.o + +@@ -117,7 +117,7 @@ + fud smmapd reconstruct quota mbpath ipurge cyr_dbtool \ cyrdump chk_cyrus cvt_cyrusdb deliver ctl_mboxlist \ ctl_deliver ctl_cyrusdb squatter mbexamine cyr_expire arbitron \ - unexpunge @IMAP_PROGS@ @@ -234,16 +234,19 @@ diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/ BUILTSOURCES = imap_err.c imap_err.h pushstats.c pushstats.h \ lmtpstats.c lmtpstats.h xversion.h mupdate_err.c mupdate_err.h \ -@@ -185,7 +185,7 @@ +@@ -183,9 +183,9 @@ + mupdate_err.h: mupdate_err.c + ### Services - idled: idled.o mutex_fake.o libimap.a $(DEPLIBS) +-idled: idled.o mutex_fake.o libimap.a $(DEPLIBS) ++idled: idled.o mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o idled \ - idled.o mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) + idled.o mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) lmtpd: lmtpd.o proxy.o $(LMTPOBJS) $(SIEVE_OBJS) mutex_fake.o \ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) -@@ -199,10 +199,10 @@ +@@ -199,151 +199,156 @@ $(SERVICE) lmtpd.o proxy.o $(LMTPOBJS) $(SIEVE_OBJS) \ mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) @@ -254,9 +257,23 @@ diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/ - libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) - imapd.pure: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) +-imapd.pure: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) ++imapd.pure: $(IMAPDOBJS) mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o imapd.pure \ -@@ -219,7 +219,7 @@ + $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ +- $(DEPLIBS) $(LIBS) $(LIB_WRAP) ++ $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) + +-imapd.quant: $(IMAPDOBJS) mutex_fake.o libimap.a $(DEPLIBS) $(SERVICE) ++imapd.quant: $(IMAPDOBJS) mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) + $(QUANTIFY) $(QUANTOPT) $(CC) $(LDFLAGS) -o imapd.quant \ + $(SERVICE) $(IMAPDOBJS) mutex_fake.o libimap.a \ +- $(DEPLIBS) $(LIBS) $(LIB_WRAP) ++ $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) + + mupdate: mupdate.o mupdate-slave.o mupdate-client.o mutex_pthread.o tls.o \ +- libimap.a $(DEPLIBS) ++ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o mupdate \ $(SERVICETHREAD) mupdate.o mupdate-slave.o mupdate-client.o \ mutex_pthread.o tls.o libimap.a \ @@ -264,40 +281,43 @@ diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/ + $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) -lpthread mupdate.pure: mupdate.o mupdate-slave.o mupdate-client.o mutex_pthread.o \ - libimap.a $(DEPLIBS) -@@ -228,118 +228,122 @@ - mutex_pthread.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -lpthread +- libimap.a $(DEPLIBS) ++ libimap.a $(SIEVE_LIBS) $(DEPLIBS) + $(PURIFY) $(PUREOPT) $(CC) $(LDFLAGS) -o mupdate.pure \ + $(SERVICETHREAD) mupdate.o mupdate-slave.o mupdate-client.o \ +- mutex_pthread.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) -lpthread ++ mutex_pthread.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) -lpthread pop3d: pop3d.o proxy.o backend.o tls.o mutex_fake.o libimap.a \ - $(DEPLIBS) $(SERVICE) -+ $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) ++ $(DEPLIBS) $(SIEVE_LIBS) $(SERVICE) $(CC) $(LDFLAGS) -o pop3d pop3d.o proxy.o backend.o tls.o $(SERVICE) \ - mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) + mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) nntpd: nntpd.o proxy.o backend.o index.o smtpclient.o spool.o tls.o \ - mutex_fake.o nntp_err.o libimap.a $(DEPLIBS) $(SERVICE) -+ mutex_fake.o nntp_err.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) ++ mutex_fake.o nntp_err.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o nntpd nntpd.o proxy.o backend.o index.o spool.o \ smtpclient.o tls.o $(SERVICE) mutex_fake.o nntp_err.o \ - libimap.a $(DEPLIBS) $(LIBS) $(LIB_WRAP) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) -fud: fud.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) -+fud: fud.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) $(SIEVE_LIBS) ++fud: fud.o libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o fud $(SERVICE) fud.o mutex_fake.o libimap.a \ - $(DEPLIBS) $(LIBS) $(LIB_WRAP) + $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) -smmapd: smmapd.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) -+smmapd: smmapd.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) $(SIEVE_LIBS) ++smmapd: smmapd.o libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o smmapd $(SERVICE) smmapd.o mutex_fake.o libimap.a \ - $(DEPLIBS) $(LIBS) $(LIB_WRAP) + $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) $(LIB_WRAP) sync_server: sync_server.o sync_support.o sync_commit.o \ - imapparse.o tls.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) -+ imapparse.o tls.o libimap.a mutex_fake.o $(DEPLIBS) $(SERVICE) $(SIEVE_LIBS) ++ imapparse.o tls.o libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) $(SERVICE) $(CC) $(LDFLAGS) -o \ sync_server sync_server.o sync_support.o sync_commit.o \ imapparse.o tls.o $(SERVICE) libimap.a mutex_fake.o \ @@ -306,122 +326,127 @@ diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/ ### Command Line Utilities -arbitron: arbitron.o $(CLIOBJS) libimap.a $(DEPLIBS) -+arbitron: arbitron.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++arbitron: arbitron.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o arbitron arbitron.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) +-cyr_dbtool: cyr_dbtool.o mutex_fake.o libimap.a $(DEPLIBS) ++cyr_dbtool: cyr_dbtool.o mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o cyr_dbtool cyr_dbtool.o $(CLIOBJS) \ +- libimap.a $(DEPLIBS) $(LIBS) ++ libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) + -cvt_cyrusdb: cvt_cyrusdb.o mutex_fake.o libimap.a $(DEPLIBS) -+cvt_cyrusdb: cvt_cyrusdb.o mutex_fake.o libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++cvt_cyrusdb: cvt_cyrusdb.o mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o cvt_cyrusdb cvt_cyrusdb.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -chk_cyrus: chk_cyrus.o mutex_fake.o libimap.a $(DEPLIBS) -+chk_cyrus: chk_cyrus.o mutex_fake.o libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++chk_cyrus: chk_cyrus.o mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o chk_cyrus chk_cyrus.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -deliver: deliver.o $(LMTPOBJS) proxy.o mutex_fake.o libimap.a $(DEPLIBS) -+deliver: deliver.o $(LMTPOBJS) proxy.o mutex_fake.o libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++deliver: deliver.o $(LMTPOBJS) proxy.o mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o deliver deliver.o $(LMTPOBJS) proxy.o \ - mutex_fake.o libimap.a $(DEPLIBS) $(LIBS) + mutex_fake.o libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -ctl_deliver: ctl_deliver.o $(CLIOBJS) libimap.a $(DEPLIBS) -+ctl_deliver: ctl_deliver.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++ctl_deliver: ctl_deliver.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ - $@ ctl_deliver.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + $@ ctl_deliver.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -ctl_mboxlist: ctl_mboxlist.o mupdate-client.o $(CLIOBJS) libimap.a $(DEPLIBS) -+ctl_mboxlist: ctl_mboxlist.o mupdate-client.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++ctl_mboxlist: ctl_mboxlist.o mupdate-client.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o $@ ctl_mboxlist.o mupdate-client.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -ctl_cyrusdb: ctl_cyrusdb.o $(CLIOBJS) libimap.a $(DEPLIBS) -+ctl_cyrusdb: ctl_cyrusdb.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++ctl_cyrusdb: ctl_cyrusdb.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ - $@ ctl_cyrusdb.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + $@ ctl_cyrusdb.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -cyr_expire: cyr_expire.o $(CLIOBJS) libimap.a $(DEPLIBS) -+cyr_expire: cyr_expire.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++cyr_expire: cyr_expire.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o $@ cyr_expire.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -fetchnews: fetchnews.o $(CLIOBJS) libimap.a $(DEPLIBS) -+fetchnews: fetchnews.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++fetchnews: fetchnews.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ - $@ fetchnews.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + $@ fetchnews.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -squatter: squatter.o index.o squat_build.o $(CLIOBJS) libimap.a $(DEPLIBS) -+squatter: squatter.o index.o squat_build.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++squatter: squatter.o index.o squat_build.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o squatter squatter.o index.o squat_build.o \ - $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -mbpath: mbpath.o $(CLIOBJS) libimap.a $(DEPLIBS) -+mbpath: mbpath.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++mbpath: mbpath.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o mbpath mbpath.o $(CLIOBJS) libimap.a \ - $(DEPLIBS) $(LIBS) -- --ipurge: ipurge.o $(CLIOBJS) libimap.a $(DEPLIBS) + $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -+ -+ipurge: ipurge.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) + +-ipurge: ipurge.o $(CLIOBJS) libimap.a $(DEPLIBS) ++ipurge: ipurge.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o ipurge ipurge.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -cyrdump: cyrdump.o index.o $(CLIOBJS) libimap.a $(DEPLIBS) -+cyrdump: cyrdump.o index.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++cyrdump: cyrdump.o index.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o cyrdump cyrdump.o index.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -mbexamine: mbexamine.o $(CLIOBJS) libimap.a $(DEPLIBS) -+mbexamine: mbexamine.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++mbexamine: mbexamine.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ - mbexamine mbexamine.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + mbexamine mbexamine.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -reconstruct: reconstruct.o $(CLIOBJS) libimap.a $(DEPLIBS) -+reconstruct: reconstruct.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++reconstruct: reconstruct.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ - reconstruct reconstruct.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + reconstruct reconstruct.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -quota: quota.o $(CLIOBJS) libimap.a $(DEPLIBS) -+quota: quota.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++quota: quota.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o quota quota.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -tls_prune: tls_prune.o tls.o $(CLIOBJS) libimap.a $(DEPLIBS) -+tls_prune: tls_prune.o tls.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++tls_prune: tls_prune.o tls.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ - $@ tls_prune.o tls.o $(CLIOBJS) libimap.a $(DEPLIBS) $(LIBS) + $@ tls_prune.o tls.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -unexpunge: unexpunge.o $(CLIOBJS) libimap.a $(DEPLIBS) -+unexpunge: unexpunge.o $(CLIOBJS) libimap.a $(DEPLIBS) $(SIEVE_LIBS) ++unexpunge: unexpunge.o $(CLIOBJS) libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o $@ unexpunge.o $(CLIOBJS) \ - libimap.a $(DEPLIBS) $(LIBS) + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) -make_md5: make_md5.o libimap.a mutex_fake.o $(DEPLIBS) - $(CC) $(LDFLAGS) -o make_md5 make_md5.o libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) -+make_md5: make_md5.o libimap.a mutex_fake.o $(DEPLIBS) $(SIEVE_LIBS) ++make_md5: make_md5.o libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) + $(CC) $(LDFLAGS) -o make_md5 make_md5.o libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) sync_client: sync_client.o sync_support.o \ - backend.o tls.o imapparse.o libimap.a mutex_fake.o $(DEPLIBS) -+ backend.o tls.o imapparse.o libimap.a mutex_fake.o $(DEPLIBS) $(SIEVE_LIBS) ++ backend.o tls.o imapparse.o libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ sync_client sync_client.o sync_support.o \ - backend.o tls.o imapparse.o libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) @@ -429,7 +454,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/ sync_reset: sync_reset.o sync_support.o sync_commit.o \ - libimap.a mutex_fake.o $(DEPLIBS) -+ libimap.a mutex_fake.o $(DEPLIBS) $(SIEVE_LIBS) ++ libimap.a mutex_fake.o $(SIEVE_LIBS) $(DEPLIBS) $(CC) $(LDFLAGS) -o \ sync_reset sync_reset.o sync_support.o sync_commit.o \ - libimap.a mutex_fake.o $(DEPLIBS) $(LIBS) @@ -438,12 +463,13 @@ diff -Naur cyrus-imapd-2.3.1/imap/Makefile.in cyrus-imapd-2.3.1-autocreate/imap/ +compile_sieve: compile_sieve.o libimap.a $(DEPLIBS) $(SIEVE_LIBS) + $(CC) $(LDFLAGS) -o compile_sieve compile_sieve.o $(CLIOBJS) \ + libimap.a $(SIEVE_LIBS) $(DEPLIBS) $(LIBS) ++ ### Other Misc Targets -diff -Naur cyrus-imapd-2.3.1/imap/autosieve.c cyrus-imapd-2.3.1-autocreate/imap/autosieve.c ---- cyrus-imapd-2.3.1/imap/autosieve.c 1970-01-01 02:00:00 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/autosieve.c 2006-01-19 03:53:41 +0200 +diff -Naur cyrus-imapd-2.3.8/imap/autosieve.c cyrus-imapd-2.3.8-autocreate.uncompiled/imap/autosieve.c +--- cyrus-imapd-2.3.8/imap/autosieve.c 1970-01-01 02:00:00.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/autosieve.c 2007-02-13 14:05:07.000000000 +0200 @@ -0,0 +1,587 @@ +#include +#include @@ -1032,9 +1058,9 @@ diff -Naur cyrus-imapd-2.3.1/imap/autosieve.c cyrus-imapd-2.3.1-autocreate/imap/ + * Pavlos. Author of cyrusmaster. So consider this patch as his birthday present + */ + -diff -Naur cyrus-imapd-2.3.1/imap/compile_sieve.c cyrus-imapd-2.3.1-autocreate/imap/compile_sieve.c ---- cyrus-imapd-2.3.1/imap/compile_sieve.c 1970-01-01 02:00:00 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/compile_sieve.c 2006-01-19 03:53:41 +0200 +diff -Naur cyrus-imapd-2.3.8/imap/compile_sieve.c cyrus-imapd-2.3.8-autocreate.uncompiled/imap/compile_sieve.c +--- cyrus-imapd-2.3.8/imap/compile_sieve.c 1970-01-01 02:00:00.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/compile_sieve.c 2007-02-13 14:05:07.000000000 +0200 @@ -0,0 +1,364 @@ +/* This tool compiles the sieve script from a command +line so that it can be used wby the autoadd patch */ @@ -1400,10 +1426,10 @@ diff -Naur cyrus-imapd-2.3.1/imap/compile_sieve.c cyrus-imapd-2.3.1-autocreate/i + + + -diff -Naur cyrus-imapd-2.3.1/imap/imapd.c cyrus-imapd-2.3.1-autocreate/imap/imapd.c ---- cyrus-imapd-2.3.1/imap/imapd.c 2005-12-13 21:35:50 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/imapd.c 2006-01-19 03:53:41 +0200 -@@ -193,6 +193,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/imapd.c cyrus-imapd-2.3.8-autocreate.uncompiled/imap/imapd.c +--- cyrus-imapd-2.3.8/imap/imapd.c 2007-02-05 20:49:55.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/imapd.c 2007-02-13 14:05:07.000000000 +0200 +@@ -204,6 +204,7 @@ void motd_file(int fd); void shut_down(int code); void fatal(const char *s, int code); @@ -1411,7 +1437,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/imapd.c cyrus-imapd-2.3.1-autocreate/imap/imap void cmdloop(void); void cmd_login(char *tag, char *user); -@@ -1889,6 +1890,43 @@ +@@ -1909,6 +1910,43 @@ } /* @@ -1455,7 +1481,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/imapd.c cyrus-imapd-2.3.1-autocreate/imap/imap * Perform a LOGIN command */ void cmd_login(char *tag, char *user) -@@ -2047,6 +2085,9 @@ +@@ -2077,6 +2115,9 @@ strcspn(imapd_userid, "@") : 0); freebuf(&passwdbuf); @@ -1465,7 +1491,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/imapd.c cyrus-imapd-2.3.1-autocreate/imap/imap return; } -@@ -2195,6 +2236,8 @@ +@@ -2233,6 +2274,8 @@ config_virtdomains ? strcspn(imapd_userid, "@") : 0); @@ -1474,10 +1500,10 @@ diff -Naur cyrus-imapd-2.3.1/imap/imapd.c cyrus-imapd-2.3.1-autocreate/imap/imap return; } -diff -Naur cyrus-imapd-2.3.1/imap/lmtpd.c cyrus-imapd-2.3.1-autocreate/imap/lmtpd.c ---- cyrus-imapd-2.3.1/imap/lmtpd.c 2005-12-13 01:10:59 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/lmtpd.c 2006-01-19 03:53:41 +0200 -@@ -114,6 +114,8 @@ +diff -Naur cyrus-imapd-2.3.8/imap/lmtpd.c cyrus-imapd-2.3.8-autocreate.uncompiled/imap/lmtpd.c +--- cyrus-imapd-2.3.8/imap/lmtpd.c 2007-02-05 20:41:47.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/lmtpd.c 2007-02-13 14:05:07.000000000 +0200 +@@ -117,6 +117,8 @@ static FILE *spoolfile(message_data_t *msgdata); static void removespool(message_data_t *msgdata); @@ -1486,7 +1512,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtpd.c cyrus-imapd-2.3.1-autocreate/imap/lmtp /* current namespace */ static struct namespace lmtpd_namespace; -@@ -924,6 +926,86 @@ +@@ -949,6 +951,86 @@ exit(code); } @@ -1573,7 +1599,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtpd.c cyrus-imapd-2.3.1-autocreate/imap/lmtp static int verify_user(const char *user, const char *domain, char *mailbox, long quotacheck, struct auth_state *authstate) { -@@ -967,6 +1049,15 @@ +@@ -992,6 +1074,15 @@ */ r = mlookup(namebuf, &server, &acl, NULL); @@ -1589,7 +1615,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtpd.c cyrus-imapd-2.3.1-autocreate/imap/lmtp if (r == IMAP_MAILBOX_NONEXISTENT && !user && config_getswitch(IMAPOPT_LMTP_FUZZY_MAILBOX_MATCH) && /* see if we have a mailbox whose name is close */ -@@ -993,6 +1084,7 @@ +@@ -1018,6 +1109,7 @@ aclcheck, (quotacheck < 0) || config_getswitch(IMAPOPT_LMTP_STRICT_QUOTA) ? quotacheck : 0); @@ -1597,10 +1623,10 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtpd.c cyrus-imapd-2.3.1-autocreate/imap/lmtp } } -diff -Naur cyrus-imapd-2.3.1/imap/mboxlist.c cyrus-imapd-2.3.1-autocreate/imap/mboxlist.c ---- cyrus-imapd-2.3.1/imap/mboxlist.c 2005-12-13 21:36:03 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/mboxlist.c 2006-01-19 03:53:41 +0200 -@@ -81,6 +81,12 @@ +diff -Naur cyrus-imapd-2.3.8/imap/mboxlist.c cyrus-imapd-2.3.8-autocreate.uncompiled/imap/mboxlist.c +--- cyrus-imapd-2.3.8/imap/mboxlist.c 2007-02-05 20:41:47.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/mboxlist.c 2007-02-13 14:05:07.000000000 +0200 +@@ -83,6 +83,12 @@ #include "mboxlist.h" #include "quota.h" @@ -1613,7 +1639,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/mboxlist.c cyrus-imapd-2.3.1-autocreate/imap/m #define DB config_mboxlist_db #define SUBDB config_subscription_db -@@ -98,11 +104,29 @@ +@@ -100,11 +106,29 @@ static int mboxlist_changequota(const char *name, int matchlen, int maycreate, void *rock); @@ -1643,7 +1669,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/mboxlist.c cyrus-imapd-2.3.1-autocreate/imap/m #define FNAME_SUBSSUFFIX ".sub" /* -@@ -3245,3 +3269,349 @@ +@@ -3261,3 +3285,349 @@ return DB->abort(mbdb, tid); } @@ -1993,10 +2019,10 @@ diff -Naur cyrus-imapd-2.3.1/imap/mboxlist.c cyrus-imapd-2.3.1-autocreate/imap/m + return r; +} + -diff -Naur cyrus-imapd-2.3.1/imap/mboxlist.h cyrus-imapd-2.3.1-autocreate/imap/mboxlist.h ---- cyrus-imapd-2.3.1/imap/mboxlist.h 2005-02-21 21:25:40 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/mboxlist.h 2006-01-19 03:53:41 +0200 -@@ -203,4 +203,10 @@ +diff -Naur cyrus-imapd-2.3.8/imap/mboxlist.h cyrus-imapd-2.3.8-autocreate.uncompiled/imap/mboxlist.h +--- cyrus-imapd-2.3.8/imap/mboxlist.h 2006-11-30 19:11:19.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/mboxlist.h 2007-02-13 14:05:07.000000000 +0200 +@@ -204,4 +204,10 @@ int mboxlist_commit(struct txn *tid); int mboxlist_abort(struct txn *tid); @@ -2007,10 +2033,10 @@ diff -Naur cyrus-imapd-2.3.1/imap/mboxlist.h cyrus-imapd-2.3.1-autocreate/imap/m + + #endif -diff -Naur cyrus-imapd-2.3.1/imap/pop3d.c cyrus-imapd-2.3.1-autocreate/imap/pop3d.c ---- cyrus-imapd-2.3.1/imap/pop3d.c 2005-12-13 21:36:08 +0200 -+++ cyrus-imapd-2.3.1-autocreate/imap/pop3d.c 2006-01-19 03:53:41 +0200 -@@ -155,6 +155,8 @@ +diff -Naur cyrus-imapd-2.3.8/imap/pop3d.c cyrus-imapd-2.3.8-autocreate.uncompiled/imap/pop3d.c +--- cyrus-imapd-2.3.8/imap/pop3d.c 2007-02-05 20:41:48.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/imap/pop3d.c 2007-02-13 14:05:07.000000000 +0200 +@@ -158,6 +158,8 @@ static char popd_apop_chal[45 + MAXHOSTNAMELEN + 1]; /* */ static void cmd_apop(char *response); @@ -2019,7 +2045,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/pop3d.c cyrus-imapd-2.3.1-autocreate/imap/pop3 static void cmd_auth(char *arg); static void cmd_capa(void); static void cmd_pass(char *pass); -@@ -1206,6 +1208,7 @@ +@@ -1226,6 +1228,7 @@ popd_userid = xstrdup(userbuf); prot_printf(popd_out, "+OK Name is a valid mailbox\r\n"); } @@ -2027,7 +2053,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/pop3d.c cyrus-imapd-2.3.1-autocreate/imap/pop3 } void cmd_pass(char *pass) -@@ -1477,6 +1480,43 @@ +@@ -1500,6 +1503,43 @@ } /* @@ -2071,7 +2097,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/pop3d.c cyrus-imapd-2.3.1-autocreate/imap/pop3 * Complete the login process by opening and locking the user's inbox */ int openinbox(void) -@@ -1505,6 +1545,12 @@ +@@ -1528,6 +1568,12 @@ if (!r) r = mboxlist_detail(inboxname, &type, NULL, NULL, &server, &acl, NULL); @@ -2084,9 +2110,9 @@ diff -Naur cyrus-imapd-2.3.1/imap/pop3d.c cyrus-imapd-2.3.1-autocreate/imap/pop3 if (!r && (config_popuseacl = config_getswitch(IMAPOPT_POPUSEACL)) && (!acl || !((myrights = cyrus_acl_myrights(popd_authstate, acl)) & ACL_READ))) { -diff -Naur cyrus-imapd-2.3.1/lib/auth.c cyrus-imapd-2.3.1-autocreate/lib/auth.c ---- cyrus-imapd-2.3.1/lib/auth.c 2005-02-16 23:06:50 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/auth.c 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/lib/auth.c cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth.c +--- cyrus-imapd-2.3.8/lib/auth.c 2006-11-30 19:11:22.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth.c 2007-02-13 14:05:07.000000000 +0200 @@ -117,3 +117,11 @@ auth->freestate(auth_state); @@ -2099,9 +2125,9 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth.c cyrus-imapd-2.3.1-autocreate/lib/auth.c + return auth->auth_canonuser(auth_state); +} + -diff -Naur cyrus-imapd-2.3.1/lib/auth.h cyrus-imapd-2.3.1-autocreate/lib/auth.h ---- cyrus-imapd-2.3.1/lib/auth.h 2005-02-16 23:06:50 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/auth.h 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/lib/auth.h cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth.h +--- cyrus-imapd-2.3.8/lib/auth.h 2006-11-30 19:11:22.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth.h 2007-02-13 14:05:07.000000000 +0200 @@ -54,6 +54,7 @@ const char *identifier); struct auth_state *(*newstate)(const char *identifier); @@ -2117,10 +2143,10 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth.h cyrus-imapd-2.3.1-autocreate/lib/auth.h +char *auth_canonuser(struct auth_state *auth_state); #endif /* INCLUDED_AUTH_H */ -diff -Naur cyrus-imapd-2.3.1/lib/auth_krb.c cyrus-imapd-2.3.1-autocreate/lib/auth_krb.c ---- cyrus-imapd-2.3.1/lib/auth_krb.c 2005-12-14 15:52:09 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/auth_krb.c 2006-01-19 03:53:42 +0200 -@@ -339,6 +339,15 @@ +diff -Naur cyrus-imapd-2.3.8/lib/auth_krb.c cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_krb.c +--- cyrus-imapd-2.3.8/lib/auth_krb.c 2006-11-30 19:11:22.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_krb.c 2007-02-13 14:05:07.000000000 +0200 +@@ -338,6 +338,15 @@ free((char *)auth_state); } @@ -2136,7 +2162,7 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth_krb.c cyrus-imapd-2.3.1-autocreate/lib/aut #else /* HAVE_KRB */ static int mymemberof( -@@ -367,6 +376,13 @@ +@@ -366,6 +375,13 @@ fatal("Authentication mechanism (krb) not compiled in", EC_CONFIG); } @@ -2150,15 +2176,15 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth_krb.c cyrus-imapd-2.3.1-autocreate/lib/aut #endif struct auth_mech auth_krb = -@@ -377,4 +393,5 @@ +@@ -376,4 +392,5 @@ &mymemberof, &mynewstate, &myfreestate, + &mycanonuser, }; -diff -Naur cyrus-imapd-2.3.1/lib/auth_krb5.c cyrus-imapd-2.3.1-autocreate/lib/auth_krb5.c ---- cyrus-imapd-2.3.1/lib/auth_krb5.c 2005-02-16 23:06:50 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/auth_krb5.c 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/lib/auth_krb5.c cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_krb5.c +--- cyrus-imapd-2.3.8/lib/auth_krb5.c 2006-11-30 19:11:22.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_krb5.c 2007-02-13 14:05:07.000000000 +0200 @@ -197,6 +197,14 @@ free(auth_state); } @@ -2193,10 +2219,10 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth_krb5.c cyrus-imapd-2.3.1-autocreate/lib/au &myfreestate, + &mycanonuser, }; -diff -Naur cyrus-imapd-2.3.1/lib/auth_pts.c cyrus-imapd-2.3.1-autocreate/lib/auth_pts.c ---- cyrus-imapd-2.3.1/lib/auth_pts.c 2005-02-20 05:23:45 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/auth_pts.c 2006-01-19 03:53:42 +0200 -@@ -347,6 +347,14 @@ +diff -Naur cyrus-imapd-2.3.8/lib/auth_pts.c cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_pts.c +--- cyrus-imapd-2.3.8/lib/auth_pts.c 2007-02-05 20:43:26.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_pts.c 2007-02-13 14:05:07.000000000 +0200 +@@ -511,6 +511,14 @@ free(auth_state); } @@ -2211,15 +2237,15 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth_pts.c cyrus-imapd-2.3.1-autocreate/lib/aut struct auth_mech auth_pts = { "pts", /* name */ -@@ -355,4 +363,5 @@ +@@ -519,4 +527,5 @@ &mymemberof, &mynewstate, &myfreestate, + &mycanonuser, }; -diff -Naur cyrus-imapd-2.3.1/lib/auth_unix.c cyrus-imapd-2.3.1-autocreate/lib/auth_unix.c ---- cyrus-imapd-2.3.1/lib/auth_unix.c 2005-02-16 23:06:50 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/auth_unix.c 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/lib/auth_unix.c cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_unix.c +--- cyrus-imapd-2.3.8/lib/auth_unix.c 2006-11-30 19:11:22.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/auth_unix.c 2007-02-13 14:05:07.000000000 +0200 @@ -264,6 +264,16 @@ free((char *)auth_state); } @@ -2243,12 +2269,12 @@ diff -Naur cyrus-imapd-2.3.1/lib/auth_unix.c cyrus-imapd-2.3.1-autocreate/lib/au &myfreestate, + &mycanonuser, }; -diff -Naur cyrus-imapd-2.3.1/lib/imapoptions cyrus-imapd-2.3.1-autocreate/lib/imapoptions ---- cyrus-imapd-2.3.1/lib/imapoptions 2005-12-13 21:36:11 +0200 -+++ cyrus-imapd-2.3.1-autocreate/lib/imapoptions 2006-01-19 03:53:42 +0200 -@@ -172,6 +172,55 @@ +diff -Naur cyrus-imapd-2.3.8/lib/imapoptions cyrus-imapd-2.3.8-autocreate.uncompiled/lib/imapoptions +--- cyrus-imapd-2.3.8/lib/imapoptions 2007-02-07 20:58:07.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/lib/imapoptions 2007-02-13 14:05:07.000000000 +0200 +@@ -177,6 +177,55 @@ /* Number of seconds to wait before returning a timeout failure when - performing a client connection (e.g. in a murder enviornment) */ + performing a client connection (e.g. in a murder environment) */ +{ "createonpost", 0, SWITCH } +/* If yes, when lmtpd receives an incoming mail for an INBOX that does not exist, @@ -2302,9 +2328,9 @@ diff -Naur cyrus-imapd-2.3.1/lib/imapoptions cyrus-imapd-2.3.1-autocreate/lib/im { "configdirectory", NULL, STRING } /* The pathname of the IMAP configuration directory. This field is required. */ -diff -Naur cyrus-imapd-2.3.1/notifyd/Makefile.in cyrus-imapd-2.3.1-autocreate/notifyd/Makefile.in ---- cyrus-imapd-2.3.1/notifyd/Makefile.in 2004-05-31 21:22:59 +0300 -+++ cyrus-imapd-2.3.1-autocreate/notifyd/Makefile.in 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/notifyd/Makefile.in cyrus-imapd-2.3.8-autocreate.uncompiled/notifyd/Makefile.in +--- cyrus-imapd-2.3.8/notifyd/Makefile.in 2006-11-30 19:11:23.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/notifyd/Makefile.in 2007-02-13 14:05:07.000000000 +0200 @@ -69,10 +69,11 @@ SERVICE=../master/service.o @@ -2318,9 +2344,9 @@ diff -Naur cyrus-imapd-2.3.1/notifyd/Makefile.in cyrus-imapd-2.3.1-autocreate/no PURIFY=/usr/local/bin/purify PUREOPT=-best-effort -diff -Naur cyrus-imapd-2.3.1/notifyd/notifyd.c cyrus-imapd-2.3.1-autocreate/notifyd/notifyd.c ---- cyrus-imapd-2.3.1/notifyd/notifyd.c 2005-04-13 18:43:36 +0300 -+++ cyrus-imapd-2.3.1-autocreate/notifyd/notifyd.c 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/notifyd/notifyd.c cyrus-imapd-2.3.8-autocreate.uncompiled/notifyd/notifyd.c +--- cyrus-imapd-2.3.8/notifyd/notifyd.c 2006-11-30 19:11:23.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/notifyd/notifyd.c 2007-02-13 14:05:07.000000000 +0200 @@ -97,7 +97,7 @@ #define NOTIFY_MAXSIZE 8192 @@ -2330,9 +2356,9 @@ diff -Naur cyrus-imapd-2.3.1/notifyd/notifyd.c cyrus-imapd-2.3.1-autocreate/noti { struct sockaddr_un sun_data; socklen_t sunlen = sizeof(sun_data); -diff -Naur cyrus-imapd-2.3.1/ptclient/Makefile.in cyrus-imapd-2.3.1-autocreate/ptclient/Makefile.in ---- cyrus-imapd-2.3.1/ptclient/Makefile.in 2005-02-17 20:43:03 +0200 -+++ cyrus-imapd-2.3.1-autocreate/ptclient/Makefile.in 2006-01-19 03:53:42 +0200 +diff -Naur cyrus-imapd-2.3.8/ptclient/Makefile.in cyrus-imapd-2.3.8-autocreate.uncompiled/ptclient/Makefile.in +--- cyrus-imapd-2.3.8/ptclient/Makefile.in 2006-11-30 19:11:24.000000000 +0200 ++++ cyrus-imapd-2.3.8-autocreate.uncompiled/ptclient/Makefile.in 2007-02-13 14:05:07.000000000 +0200 @@ -57,10 +57,11 @@ AFS_LDFLAGS = @AFS_LDFLAGS@ @COM_ERR_LDFLAGS@ AFS_LIBS = @AFS_LIBS@ diff --git a/cyrus-imapd-2.3.1-autosievefolder-0.6-0.diff b/cyrus-imapd-2.3.8-autosieve-0.6.0.diff similarity index 88% rename from cyrus-imapd-2.3.1-autosievefolder-0.6-0.diff rename to cyrus-imapd-2.3.8-autosieve-0.6.0.diff index b46af02..6d83044 100644 --- a/cyrus-imapd-2.3.1-autosievefolder-0.6-0.diff +++ b/cyrus-imapd-2.3.8-autosieve-0.6.0.diff @@ -1,6 +1,6 @@ -diff -Naur cyrus-imapd-2.3.1/README.autosievefolder cyrus-imapd-2.3.1-autosieve/README.autosievefolder ---- cyrus-imapd-2.3.1/README.autosievefolder 1970-01-01 02:00:00 +0200 -+++ cyrus-imapd-2.3.1-autosieve/README.autosievefolder 2006-01-19 03:29:08 +0200 +diff -Naur cyrus-imapd-2.3.8/README.autosievefolder cyrus-imapd-2.3.8-autosieve.uncompiled/README.autosievefolder +--- cyrus-imapd-2.3.8/README.autosievefolder 1970-01-01 02:00:00.000000000 +0200 ++++ cyrus-imapd-2.3.8-autosieve.uncompiled/README.autosievefolder 2007-02-13 15:05:04.000000000 +0200 @@ -0,0 +1,42 @@ +Cyrus IMAP autosievefolder patch +---------------------------------- @@ -44,10 +44,10 @@ diff -Naur cyrus-imapd-2.3.1/README.autosievefolder cyrus-imapd-2.3.1-autosieve/ + +For more information and updates please visit http://email.uoa.gr/projects/cyrus/autosievefolder + -diff -Naur cyrus-imapd-2.3.1/imap/lmtp_sieve.c cyrus-imapd-2.3.1-autosieve/imap/lmtp_sieve.c ---- cyrus-imapd-2.3.1/imap/lmtp_sieve.c 2005-11-21 18:26:54 +0200 -+++ cyrus-imapd-2.3.1-autosieve/imap/lmtp_sieve.c 2006-01-19 03:29:13 +0200 -@@ -86,6 +86,9 @@ +diff -Naur cyrus-imapd-2.3.8/imap/lmtp_sieve.c cyrus-imapd-2.3.8-autosieve.uncompiled/imap/lmtp_sieve.c +--- cyrus-imapd-2.3.8/imap/lmtp_sieve.c 2007-02-05 20:41:47.000000000 +0200 ++++ cyrus-imapd-2.3.8-autosieve.uncompiled/imap/lmtp_sieve.c 2007-02-13 15:05:04.000000000 +0200 +@@ -88,6 +88,9 @@ struct auth_state *authstate; } script_data_t; @@ -57,7 +57,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtp_sieve.c cyrus-imapd-2.3.1-autosieve/imap/ static char *make_sieve_db(const char *user) { static char buf[MAX_MAILBOX_PATH+1]; -@@ -487,7 +490,20 @@ +@@ -484,7 +487,20 @@ sd->username, mdata->notifyheader, namebuf, quotaoverride, 0); } @@ -79,7 +79,7 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtp_sieve.c cyrus-imapd-2.3.1-autosieve/imap/ if (!ret) { snmp_increment(SIEVE_FILEINTO, 1); return SIEVE_OK; -@@ -939,3 +955,80 @@ +@@ -936,3 +952,80 @@ we'll do normal delivery */ return r; } @@ -160,10 +160,10 @@ diff -Naur cyrus-imapd-2.3.1/imap/lmtp_sieve.c cyrus-imapd-2.3.1-autosieve/imap/ + return IMAP_MAILBOX_NONEXISTENT; +} + -diff -Naur cyrus-imapd-2.3.1/lib/imapoptions cyrus-imapd-2.3.1-autosieve/lib/imapoptions ---- cyrus-imapd-2.3.1/lib/imapoptions 2005-12-13 21:36:11 +0200 -+++ cyrus-imapd-2.3.1-autosieve/lib/imapoptions 2006-01-19 03:29:15 +0200 -@@ -856,6 +856,15 @@ +diff -Naur cyrus-imapd-2.3.8/lib/imapoptions cyrus-imapd-2.3.8-autosieve.uncompiled/lib/imapoptions +--- cyrus-imapd-2.3.8/lib/imapoptions 2007-02-07 20:58:07.000000000 +0200 ++++ cyrus-imapd-2.3.8-autosieve.uncompiled/lib/imapoptions 2007-02-13 15:05:04.000000000 +0200 +@@ -884,6 +884,15 @@ /* If enabled, lmtpd will look for Sieve scripts in user's home directories: ~user/.sieve. */ diff --git a/cyrus-imapd-2.3.1-rmquota+deletemailbox-0.2-1.diff b/cyrus-imapd-2.3.8-rmquota+deletemailbox-0.2-1.diff similarity index 71% rename from cyrus-imapd-2.3.1-rmquota+deletemailbox-0.2-1.diff rename to cyrus-imapd-2.3.8-rmquota+deletemailbox-0.2-1.diff index 6810fba..44c4d61 100644 --- a/cyrus-imapd-2.3.1-rmquota+deletemailbox-0.2-1.diff +++ b/cyrus-imapd-2.3.8-rmquota+deletemailbox-0.2-1.diff @@ -1,6 +1,6 @@ -diff -Naur cyrus-imapd-2.3.1.orig/imap/ctl_cyrusdb.c cyrus-imapd-2.3.1/imap/ctl_cyrusdb.c ---- cyrus-imapd-2.3.1.orig/imap/ctl_cyrusdb.c 2005-02-16 22:06:18.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/ctl_cyrusdb.c 2006-01-16 11:10:56.000000000 +0100 +diff -Naur cyrus-imapd-2.3.8/imap/ctl_cyrusdb.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/ctl_cyrusdb.c +--- cyrus-imapd-2.3.8/imap/ctl_cyrusdb.c 2006-11-30 19:11:17.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/ctl_cyrusdb.c 2007-02-21 16:34:33.000000000 +0200 @@ -133,7 +133,7 @@ /* if it is MBTYPE_RESERVED, unset it & call mboxlist_delete */ if(!r && (mbtype & MBTYPE_RESERVE)) { @@ -10,22 +10,22 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/ctl_cyrusdb.c cyrus-imapd-2.3.1/imap/ctl_ if(r) { /* log the error */ syslog(LOG_ERR, -diff -Naur cyrus-imapd-2.3.1.orig/imap/ctl_mboxlist.c cyrus-imapd-2.3.1/imap/ctl_mboxlist.c ---- cyrus-imapd-2.3.1.orig/imap/ctl_mboxlist.c 2005-11-23 14:41:24.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/ctl_mboxlist.c 2006-01-16 11:10:56.000000000 +0100 -@@ -457,7 +457,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/ctl_mboxlist.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/ctl_mboxlist.c +--- cyrus-imapd-2.3.8/imap/ctl_mboxlist.c 2007-02-05 20:41:46.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/ctl_mboxlist.c 2007-02-21 16:34:48.000000000 +0200 +@@ -461,7 +461,7 @@ wipe_head = wipe_head->next; - ret = mboxlist_deletemailbox(me->mailbox, 1, "", NULL, 0, 1, 1); + ret = mboxlist_deletemailbox(me->mailbox, 1, "", NULL, 0, 1, 1, 1); + if(!ret) sync_log_mailbox(me->mailbox); if(ret) { fprintf(stderr, "couldn't delete defunct mailbox %s\n", - me->mailbox); -diff -Naur cyrus-imapd-2.3.1.orig/imap/imapd.c cyrus-imapd-2.3.1/imap/imapd.c ---- cyrus-imapd-2.3.1.orig/imap/imapd.c 2005-12-13 20:35:50.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/imapd.c 2006-01-16 11:10:56.000000000 +0100 -@@ -4707,7 +4707,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/imapd.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/imapd.c +--- cyrus-imapd-2.3.8/imap/imapd.c 2007-02-05 20:49:55.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/imapd.c 2007-02-21 16:34:58.000000000 +0200 +@@ -4983,7 +4983,7 @@ r = mboxlist_deletemailbox(name, imapd_userisadmin, imapd_userid, imapd_authstate, @@ -34,20 +34,20 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/imapd.c cyrus-imapd-2.3.1/imap/imapd.c if (!r) sync_log_mailbox(name); -@@ -4731,6 +4731,12 @@ +@@ -5007,6 +5007,12 @@ char *p; int domainlen = 0; int sync_lockfd = (-1); + int keepQuota = 1; + + if(name && *name == '+') { -+ keepQuota = 0; -+ name++; ++ keepQuota = 0; ++ name++; + } r = (*imapd_namespace.mboxname_tointernal)(&imapd_namespace, name, imapd_userid, mailboxname); -@@ -4789,7 +4795,7 @@ +@@ -5065,7 +5071,7 @@ r = mboxlist_deletemailbox(mailboxname, imapd_userisadmin, imapd_userid, imapd_authstate, 1-force, @@ -56,7 +56,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/imapd.c cyrus-imapd-2.3.1/imap/imapd.c } /* was it a top-level user mailbox? */ -@@ -6149,6 +6155,7 @@ +@@ -6423,6 +6429,7 @@ { int newquota = -1; int badresource = 0; @@ -64,7 +64,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/imapd.c cyrus-imapd-2.3.1/imap/imapd.c int c; int force = 0; static struct buf arg; -@@ -6165,7 +6172,8 @@ +@@ -6439,7 +6446,8 @@ if (c != ')' || arg.s[0] != '\0') { for (;;) { if (c != ' ') goto badlist; @@ -74,19 +74,19 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/imapd.c cyrus-imapd-2.3.1/imap/imapd.c c = getword(imapd_in, &arg); if (c != ' ' && c != ')') goto badlist; if (arg.s[0] == '\0') goto badlist; -@@ -6234,7 +6242,10 @@ - quotaroot++; - } - +@@ -6508,7 +6516,10 @@ + + /* local mailbox */ + if (!r || (r == IMAP_MAILBOX_NONEXISTENT)) { - r = mboxlist_setquota(mailboxname, newquota, force); -+ if(!rmquota) ++ if(!rmquota) + r = mboxlist_setquota(mailboxname, newquota, force); -+ else ++ else + r = mboxlist_unsetquota(mailboxname); } imapd_check(NULL, 0, 0); -@@ -7931,7 +7942,7 @@ +@@ -8221,7 +8232,7 @@ /* note also that we need to remember to let proxyadmins do this */ r = mboxlist_deletemailbox(mailboxname, imapd_userisadmin || imapd_userisproxyadmin, @@ -95,10 +95,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/imapd.c cyrus-imapd-2.3.1/imap/imapd.c if(r) syslog(LOG_ERR, "Could not delete local mailbox during move of %s", mailboxname); -diff -Naur cyrus-imapd-2.3.1.orig/imap/mailbox.c cyrus-imapd-2.3.1/imap/mailbox.c ---- cyrus-imapd-2.3.1.orig/imap/mailbox.c 2005-11-10 07:04:55.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/mailbox.c 2006-01-16 11:10:56.000000000 +0100 -@@ -2622,27 +2622,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/mailbox.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mailbox.c +--- cyrus-imapd-2.3.8/imap/mailbox.c 2007-02-05 20:41:47.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mailbox.c 2007-02-21 16:35:10.000000000 +0200 +@@ -2745,27 +2745,7 @@ seen_delete_mailbox(mailbox); @@ -125,16 +125,15 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mailbox.c cyrus-imapd-2.3.1/imap/mailbox. - } + mailbox_updatequota(mailbox,NULL); - /* remove data (message file) directory */ - path = mailbox->path; -@@ -3263,3 +3243,49 @@ + /* Flush data (message file) directory */ + mailbox_delete_files(mailbox->path); +@@ -3392,3 +3372,48 @@ if (*p == '.') *p = '/'; } } + -+ +/* This function is used to update the quota. Can be used to replace -+ * identical parts of the code, and can be quite handy some times ++ * identical parts of the code, and can be quite handy some times + * The tid is used in order to make possible to make the quota update + * being a part of a bigger transaction to the quota db */ +int mailbox_updatequota(struct mailbox *mailbox, struct txn **tid) @@ -177,10 +176,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mailbox.c cyrus-imapd-2.3.1/imap/mailbox. + return r; +} + -diff -Naur cyrus-imapd-2.3.1.orig/imap/mailbox.h cyrus-imapd-2.3.1/imap/mailbox.h ---- cyrus-imapd-2.3.1.orig/imap/mailbox.h 2005-05-27 19:40:54.000000000 +0200 -+++ cyrus-imapd-2.3.1/imap/mailbox.h 2006-01-16 11:10:56.000000000 +0100 -@@ -329,6 +329,8 @@ +diff -Naur cyrus-imapd-2.3.8/imap/mailbox.h cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mailbox.h +--- cyrus-imapd-2.3.8/imap/mailbox.h 2006-11-30 19:11:19.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mailbox.h 2007-02-21 16:35:20.000000000 +0200 +@@ -364,6 +364,8 @@ struct mailbox *mailboxp); extern int mailbox_delete(struct mailbox *mailbox, int delete_quota_root); @@ -189,10 +188,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mailbox.h cyrus-imapd-2.3.1/imap/mailbox. extern int mailbox_rename_copy(struct mailbox *oldmailbox, const char *newname, char *newpartition, bit32 *olduidvalidityp, bit32 *newuidvalidityp, -diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlist.c ---- cyrus-imapd-2.3.1.orig/imap/mboxlist.c 2005-12-13 20:36:03.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/mboxlist.c 2006-01-16 11:10:56.000000000 +0100 -@@ -93,6 +93,11 @@ +diff -Naur cyrus-imapd-2.3.8/imap/mboxlist.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mboxlist.c +--- cyrus-imapd-2.3.8/imap/mboxlist.c 2007-02-05 20:41:47.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mboxlist.c 2007-02-21 16:35:29.000000000 +0200 +@@ -95,6 +95,12 @@ static int mboxlist_opensubs(); static void mboxlist_closesubs(); @@ -200,11 +199,12 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis + int matchlen __attribute__((unused)), + int maycreate __attribute__((unused)), + void *rock); ++ + static int mboxlist_rmquota(const char *name, int matchlen, int maycreate, void *rock); static int mboxlist_changequota(const char *name, int matchlen, int maycreate, -@@ -100,6 +105,7 @@ +@@ -102,6 +108,7 @@ struct change_rock { struct quota *quota; @@ -212,7 +212,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis struct txn **tid; }; -@@ -891,9 +897,9 @@ +@@ -889,9 +896,9 @@ */ int mboxlist_deletemailbox(const char *name, int isadmin, char *userid, struct auth_state *auth_state, int checkacl, @@ -224,7 +224,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis char *acl; long access; struct mailbox mailbox; -@@ -904,6 +910,7 @@ +@@ -902,6 +909,7 @@ int mbtype; const char *p; mupdate_handle *mupdate_h = NULL; @@ -232,7 +232,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis if(!isadmin && force) return IMAP_PERMISSION_DENIED; -@@ -1016,13 +1023,44 @@ +@@ -1014,15 +1022,47 @@ if ((r && !force) || isremote) goto done; @@ -241,16 +241,18 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis + /* first we have to keep the previous quota root in order to delete it */ + if(mailbox.quota.root) + quotaroot = xstrdup(mailbox.quota.root); -+ r = mailbox_delete(&mailbox, deletequotaroot); ++ r = mailbox_delete(&mailbox, deletequotaroot); + } ++ /* * See if we have to remove mailbox's quota root */ - if (!r && mailbox.quota.root != NULL) { +- /* xxx look for any other mailboxes in this quotaroot */ + if (!r && quotaroot != NULL) { - /* xxx look for any other mailboxes in this quotaroot */ -+ /* If we have not asked to remove the quota (default behaviour), we check ++ /* xxx look for any other mailboxes in this quotaroot */ ++ /* If we have not asked to remove the quota (default behaviour), we check + * whether there are any subfolders beneeth the quota root. If there aren't + * any subfolders the reasonable thing is to delete the quota */ + if(keepQuota) { @@ -261,15 +263,15 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis + } + else { + strlcat(pattern, ".*", sizeof(pattern)); -+ } -+ /* find if there are subfolders. Then we want to -+ * keep the existing quota */ ++ } ++ /* find if there are subfolders. Then we want to ++ * keep the existing quota */ + mboxlist_findall(NULL, pattern, isadmin, userid, + auth_state, child_cb, (void *) &has_children); + -+ if(!has_children) -+ if(!mboxlist_mylookup(quotaroot, NULL, NULL, NULL, NULL, NULL, NULL, 0 )) -+ has_children = 1; ++ if(!has_children) ++ if(!mboxlist_mylookup(quotaroot, NULL, NULL, NULL, NULL, NULL, 0, 1)) ++ has_children = 1; + } + /* If we want to remove the quota explicitely or the quota root folder has no subfolders + * we execute the rmquota patch */ @@ -277,9 +279,12 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis + mboxlist_unsetquota(quotaroot); + free(quotaroot); } - +- ++ done: -@@ -2478,6 +2516,7 @@ + if(r && tid && !force) { + /* Abort the transaction if it is still in progress */ +@@ -2483,6 +2523,7 @@ if (r) return r; crock.quota = "a; @@ -287,7 +292,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis crock.tid = &tid; /* top level mailbox */ if(have_mailbox) -@@ -2496,17 +2535,21 @@ +@@ -2501,15 +2542,19 @@ */ int mboxlist_unsetquota(const char *root) { @@ -302,24 +307,15 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis || strchr(root, '*') || strchr(root, '%') || strchr(root, '?')) { return IMAP_MAILBOX_BADNAME; } -+ -+ crock.tid=NULL; ++ crock.tid=NULL; ++ quota.root = (char *) root; -- r = quota_read("a, NULL, 0); -+ r = quota_read("a, crock.tid, 0); + r = quota_read("a, NULL, 0); if (r == IMAP_QUOTAROOT_NONEXISTENT) { - /* already unset */ - return 0; -@@ -2523,13 +2566,45 @@ - } - else - strlcat(pattern, ".*", sizeof(pattern)); -- -- /* top level mailbox */ -- mboxlist_rmquota(root, 0, 0, (void *)root); -- /* submailboxes - we're using internal names here */ -- mboxlist_findall(NULL, pattern, 1, 0, 0, mboxlist_rmquota, (void *)root); +@@ -2534,9 +2579,47 @@ + /* submailboxes - we're using internal names here */ + mboxlist_findall(NULL, pattern, 1, 0, 0, mboxlist_rmquota, (void *)root); - r = quota_delete("a, NULL); + r = quota_delete("a, crock.tid); @@ -362,8 +358,11 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis + quota_abort(crock.tid); return r; ++ } -@@ -2627,6 +2702,7 @@ + + /* +@@ -2632,6 +2715,7 @@ struct mailbox mailbox; struct change_rock *crock = (struct change_rock *) rock; struct quota *mboxlist_newquota = crock->quota; @@ -371,7 +370,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis struct txn **tid = crock->tid; assert(rock != NULL); -@@ -2644,27 +2720,24 @@ +@@ -2649,27 +2733,24 @@ if (r) goto error; if (mailbox.quota.root) { @@ -385,14 +384,8 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis - if (r) goto error; - if (mailbox.quota.used >= mailbox.quota_mailbox_used) { - mailbox.quota.used -= mailbox.quota_mailbox_used; -+ if(mboxlist_oldquota) { -+ if (strlen(mailbox.quota.root) > strlen(mboxlist_oldquota->root)) { -+ /* Part of a child quota root */ -+ mailbox_close(&mailbox); -+ return 0; -+ } - } - else { +- } +- else { - mailbox.quota.used = 0; - } - r = quota_write(&mailbox.quota, tid); @@ -400,26 +393,31 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis - syslog(LOG_ERR, - "LOSTQUOTA: unable to record free of " UQUOTA_T_FMT " bytes in quota %s", - mailbox.quota_mailbox_used, mailbox.quota.root); -+ if (strlen(mailbox.quota.root) >= strlen(mboxlist_newquota->root)) { -+ /* Part of a child quota root */ -+ mailbox_close(&mailbox); -+ return 0; -+ } - } +- } - free(mailbox.quota.root); ++ if(mboxlist_oldquota) { ++ if (strlen(mailbox.quota.root) > strlen(mboxlist_oldquota->root)) { ++ /* Part of a child quota root */ ++ mailbox_close(&mailbox); ++ return 0; ++ } ++ } ++ else { ++ if (strlen(mailbox.quota.root) >= strlen(mboxlist_newquota->root)) { ++ /* Part of a child quota root */ ++ mailbox_close(&mailbox); ++ return 0; ++ } ++ } + -+ r = mailbox_updatequota(&mailbox,tid); -+ if (r) -+ goto error; ++ r = mailbox_updatequota(&mailbox,tid); ++ if (r) ++ goto error; } mailbox.quota.root = xstrdup(mboxlist_newquota->root); -@@ -2674,18 +2747,24 @@ - mboxlist_newquota->used += mailbox.quota_mailbox_used; - mailbox_close(&mailbox); - return 0; -- -+ +@@ -2682,6 +2763,11 @@ + error: mailbox_close(&mailbox); + syslog(LOG_ERR, "LOSTQUOTA: unable to change quota root for %s to %s: %s. \ @@ -429,22 +427,11 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.c cyrus-imapd-2.3.1/imap/mboxlis + return 1; error_noclose: syslog(LOG_ERR, "LOSTQUOTA: unable to change quota root for %s to %s: %s", -- name, mboxlist_newquota->root, error_message(r)); -+ name, mboxlist_newquota->root, error_message(r)); - - /* Note, we're a callback, and it's not a huge tragedy if we - * fail, so we don't ever return a failure */ - return 0; - } - -+ - /* must be called after cyrus_init */ - void mboxlist_init(int myflags) - { -diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.h cyrus-imapd-2.3.1/imap/mboxlist.h ---- cyrus-imapd-2.3.1.orig/imap/mboxlist.h 2005-02-21 20:25:40.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/mboxlist.h 2006-01-16 11:10:56.000000000 +0100 -@@ -125,7 +125,7 @@ + name, mboxlist_newquota->root, error_message(r)); +diff -Naur cyrus-imapd-2.3.8/imap/mboxlist.h cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mboxlist.h +--- cyrus-imapd-2.3.8/imap/mboxlist.h 2006-11-30 19:11:19.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mboxlist.h 2007-02-21 16:35:34.000000000 +0200 +@@ -126,7 +126,7 @@ * the planet */ int mboxlist_deletemailbox(const char *name, int isadmin, char *userid, struct auth_state *auth_state, int checkacl, @@ -453,10 +440,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mboxlist.h cyrus-imapd-2.3.1/imap/mboxlis /* Rename/move a mailbox (hierarchical) */ int mboxlist_renamemailbox(char *oldname, char *newname, char *partition, -diff -Naur cyrus-imapd-2.3.1.orig/imap/mupdate.c cyrus-imapd-2.3.1/imap/mupdate.c ---- cyrus-imapd-2.3.1.orig/imap/mupdate.c 2005-11-04 14:34:23.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/mupdate.c 2006-01-16 11:10:56.000000000 +0100 -@@ -2297,7 +2297,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/mupdate.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mupdate.c +--- cyrus-imapd-2.3.8/imap/mupdate.c 2007-01-31 16:10:05.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/mupdate.c 2007-02-21 16:35:44.000000000 +0200 +@@ -2313,7 +2313,7 @@ remote_boxes.head = r->next; } else if (ret < 0) { /* Local without corresponding remote, delete it */ @@ -465,7 +452,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mupdate.c cyrus-imapd-2.3.1/imap/mupdate. local_boxes.head = l->next; } else /* (ret > 0) */ { /* Remote without corresponding local, insert it */ -@@ -2312,7 +2312,7 @@ +@@ -2328,7 +2328,7 @@ if(l && !r) { /* we have more deletes to do */ while(l) { @@ -474,10 +461,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/mupdate.c cyrus-imapd-2.3.1/imap/mupdate. local_boxes.head = l->next; l = local_boxes.head; } -diff -Naur cyrus-imapd-2.3.1.orig/imap/nntpd.c cyrus-imapd-2.3.1/imap/nntpd.c ---- cyrus-imapd-2.3.1.orig/imap/nntpd.c 2005-12-13 20:36:06.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/nntpd.c 2006-01-16 11:10:56.000000000 +0100 -@@ -3342,7 +3342,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/nntpd.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/nntpd.c +--- cyrus-imapd-2.3.8/imap/nntpd.c 2007-02-05 20:49:56.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/nntpd.c 2007-02-21 16:35:53.000000000 +0200 +@@ -3358,7 +3358,7 @@ /* XXX should we delete right away, or wait until empty? */ r = mboxlist_deletemailbox(mailboxname, 0, @@ -486,10 +473,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/nntpd.c cyrus-imapd-2.3.1/imap/nntpd.c if (!r) sync_log_mailbox(mailboxname); -diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_reset.c cyrus-imapd-2.3.1/imap/sync_reset.c ---- cyrus-imapd-2.3.1.orig/imap/sync_reset.c 2005-12-13 16:31:10.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/sync_reset.c 2006-01-16 11:12:34.000000000 +0100 -@@ -254,7 +254,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/sync_reset.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/sync_reset.c +--- cyrus-imapd-2.3.8/imap/sync_reset.c 2006-11-30 19:11:20.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/sync_reset.c 2007-02-22 13:23:41.000000000 +0200 +@@ -258,7 +258,7 @@ if (r) goto fail; for (item = list->head ; item ; item = item->next) { @@ -498,7 +485,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_reset.c cyrus-imapd-2.3.1/imap/sync_ if (r) goto fail; } -@@ -270,7 +270,7 @@ +@@ -274,7 +274,7 @@ if (r) goto fail; for (item = list->head ; item ; item = item->next) { @@ -507,7 +494,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_reset.c cyrus-imapd-2.3.1/imap/sync_ if (r) goto fail; } -@@ -278,7 +278,7 @@ +@@ -282,7 +282,7 @@ /* Nuke inbox (recursive nuke possible?) */ snprintf(buf, sizeof(buf)-1, "user.%s", user); @@ -516,10 +503,10 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_reset.c cyrus-imapd-2.3.1/imap/sync_ if (r && (r != IMAP_MAILBOX_NONEXISTENT)) goto fail; if ((r=user_deletedata(user, sync_userid, sync_authstate, 1))) -diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_server.c cyrus-imapd-2.3.1/imap/sync_server.c ---- cyrus-imapd-2.3.1.orig/imap/sync_server.c 2005-12-20 16:54:43.000000000 +0100 -+++ cyrus-imapd-2.3.1/imap/sync_server.c 2006-01-16 11:13:02.000000000 +0100 -@@ -1569,7 +1569,7 @@ +diff -Naur cyrus-imapd-2.3.8/imap/sync_server.c cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/sync_server.c +--- cyrus-imapd-2.3.8/imap/sync_server.c 2006-11-30 19:11:20.000000000 +0200 ++++ cyrus-imapd-2.3.8-rmquota+deletemailbox.uncompiled/imap/sync_server.c 2007-02-22 13:24:17.000000000 +0200 +@@ -1581,7 +1581,7 @@ for (item = list->head ; item ; item = item->next) { r=mboxlist_deletemailbox(item->name, sync_userisadmin, sync_userid, @@ -528,7 +515,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_server.c cyrus-imapd-2.3.1/imap/sync if (r) goto fail; } -@@ -1579,7 +1579,7 @@ +@@ -1591,7 +1591,7 @@ (sync_namespacep->mboxname_tointernal)(sync_namespacep, "INBOX", user, buf); r = mboxlist_deletemailbox(buf, sync_userisadmin, sync_userid, @@ -537,7 +524,7 @@ diff -Naur cyrus-imapd-2.3.1.orig/imap/sync_server.c cyrus-imapd-2.3.1/imap/sync if (r && (r != IMAP_MAILBOX_NONEXISTENT)) goto fail; if ((r=user_deletedata(user, sync_userid, sync_authstate, 1))) -@@ -2501,7 +2501,7 @@ +@@ -2526,7 +2526,7 @@ /* Delete with admin priveleges */ r = mboxlist_deletemailbox(name, sync_userisadmin, sync_userid, diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 7a84cd5..40b26e0 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -1,6 +1,6 @@ Name: cyrus-imapd -Version: 2.3.7 -Release: 8%{?dist} +Version: 2.3.8 +Release: 1%{?dist} # ********************** BUILD TIME OPTIONS START ********************** @@ -92,7 +92,7 @@ Release: 8%{?dist} Summary: A high-performance mail server with IMAP, POP3, NNTP and SIEVE support License: BSD Group: System Environment/Daemons -URL: http://asg.web.cmu.edu/cyrus/imapd/ +URL: http://cyrusimap.web.cmu.edu/ #Packager: Simon Matter #Vendor: Invoca Systems #Distribution: Invoca Linux Server @@ -131,9 +131,9 @@ Source31: cyrus-imapd-README.groupcache Source32: cyrus-imapd.upd_groupcache Source33: cyrus-imapd-README.skiplist_recovery Patch0: cyrus-imapd-2.2.12-no_transfig.patch -Patch1: cyrus-imapd-2.3.7-autocreate-0.10-0.diff -Patch2: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.3/cyrus-imapd-2.3.3-autosieve-0.6.0.diff -Patch3: cyrus-imapd-2.3.7-rmquota+deletemailbox.patch +Patch1: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.8/cyrus-imapd-2.3.8-autocreate-0.10-0.diff +Patch2: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.8/cyrus-imapd-2.3.8-autosieve-0.6.0.diff +Patch3: http://email.uoa.gr/download/cyrus/cyrus-imapd-2.3.8/cyrus-imapd-2.3.8-rmquota+deletemailbox-0.2-1.diff Patch4: http://servercc.oakton.edu/~jwade/cyrus/cyrus-imapd-2.1.3/cyrus-imapd-2.1.3-flock.patch Patch5: cyrus-imapd-2.2.12-munge8bit.patch Patch6: cyrus-imapd-2.1.16-getrlimit.patch @@ -142,7 +142,7 @@ Patch8: cyrus-imapd-2.2.10-groupcache.patch Patch9: cyrus-imapd-2.3.1-config_defaults.patch Patch10: cyrus-imapd-acceptinvalidfrom.patch Patch11: cyrus-imapd-2.2.12-dam_invalid_id-christos.patch -Patch12: cyrus-imapd-2.2.12-notify_sms.patch +Patch12: cyrus-imapd-2.3.7-notify_sms.patch Patch13: allow_auth_plain_proxying.patch Patch14: cyrus-imapd-2.3.1-authid_normalize.patch Patch15: cyrus-imapd-2.3.1-make_md5_defaults.patch @@ -153,7 +153,7 @@ Patch18: cyrus-imapd-2.3.7-krb4.patch Patch100: cyrus-imapd-2.3.1-make_md5.patch Patch101: cyrus-imapd-2.3.1-backend_sigsegv.patch Patch102: cyrus-imapd-2.3.1-replication_policycheck.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: autoconf >= 2.59 BuildRequires: cyrus-sasl-devel >= 2.1.15-1, perl, tcp_wrappers BuildRequires: %{_dbver}-devel, openssl-devel, pkgconfig @@ -211,14 +211,14 @@ Requires: %{name} = %{version}-%{release} The %{name}-devel package contains header files and libraries necessary for developing applications which use the imclient library. -%package -n cyrus-imapd-perl +%package perl Provides: perl-Cyrus Obsoletes: perl-Cyrus Group: System Environment/Libraries Summary: Cyrus IMAP server utility Perl modules -%description -n cyrus-imapd-perl -This package contains Perl modules necessary to use the +%description perl +The %{name}-perl contains Perl modules necessary to use the Cyrus IMAP server administration utilities. %package utils @@ -227,7 +227,7 @@ Summary: Cyrus IMAP server administration utilities Requires(pre): /usr/sbin/groupadd, /usr/sbin/useradd Requires(post): grep, coreutils, make, openssl Requires(postun): /usr/sbin/userdel, /usr/sbin/groupdel -Requires: cyrus-imapd-perl = %{version}-%{release} +Requires: %{name}-perl = %{version}-%{release} %description utils The %{name}-utils package contains administrative tools for the @@ -238,11 +238,7 @@ one running the server. %setup -q %patch0 -p1 -b .no_transfig %if %{AUTOCREATE} -#%patch1 -p1 -b .autocreate -#%patch2 -p1 -b .autosievefolder -#%patch3 -p1 -b .rmquota %patch1 -p1 -b .autocreate -#%patch2 -p1 -b .autocreate1 %patch2 -p1 -b .autosieve %patch3 -p1 -b .rmquota %endif @@ -308,7 +304,7 @@ LDFLAGS="$LDFLAGS -pie"; export LDFLAGS --enable-idled \ %endif %if %{_withldap} - --with-ldap \ + --with-ldap=/usr \ %endif %if %{SNMP} --with-snmp \ @@ -322,7 +318,7 @@ LDFLAGS="$LDFLAGS -pie"; export LDFLAGS --with-cyrus-prefix=%{_cyrexecdir} \ --with-service-path=%{_cyrexecdir} \ --with-bdb-incdir=%{_includedir}/%{_dbver} \ - --with-extraident="Invoca-RPM-%{version}-%{release}" \ + --with-extraident="Fedora-RPM-%{version}-%{release}" \ --with-syslogfacility=%{SYSLOGFACILITY} \ --with-krbimpl=mit @@ -422,7 +418,7 @@ done %{buildroot}%{_sysconfdir}/{rc.d/init.d,logrotate.d,pam.d,sysconfig,cron.daily} \ %{buildroot}%{_libdir}/sasl \ %{buildroot}%{_spooldata} \ - %{buildroot}%{_vardata}/{user,quota,proc,log,msg,socket,db,sieve,sync,md5,rpm,backup} \ + %{buildroot}%{_vardata}/{user,quota,proc,log,msg,socket,db,sieve,sync,md5,rpm,backup,meta} \ %if %{_withldap} %{buildroot}%{_vardata}/ptclient \ %endif @@ -710,6 +706,7 @@ fi %attr(0755,root,root) %{_cyrexecdir}/ctl_deliver %attr(0755,root,root) %{_cyrexecdir}/ctl_mboxlist %attr(0755,root,root) %{_cyrexecdir}/cvt_cyrusdb +%attr(0755,root,root) %{_cyrexecdir}/cyr_dbtool %attr(0755,root,root) %{_cyrexecdir}/cyr_expire %attr(0755,root,root) %{_cyrexecdir}/cyrdump %attr(0755,root,root) %{_cyrexecdir}/cyrus-master @@ -781,6 +778,7 @@ fi %attr(0700,%{_cyrususer},%{_cyrusgroup}) %dir %{_vardata}/md5 %attr(0700,%{_cyrususer},%{_cyrusgroup}) %dir %{_vardata}/rpm %attr(0700,%{_cyrususer},%{_cyrusgroup}) %dir %{_vardata}/backup +%attr(0700,%{_cyrususer},%{_cyrusgroup}) %dir %{_vardata}/meta %if %{_withldap} %attr(0700,%{_cyrususer},%{_cyrusgroup}) %dir %{_vardata}/ptclient %endif @@ -803,7 +801,7 @@ fi %{_libdir}/lib*.a %{_mandir}/man3/imclient.3* -%files -n cyrus-imapd-perl -f cyrus-imapd-perl-%{version}-filelist +%files perl -f cyrus-imapd-perl-%{version}-filelist %defattr(-,root,root) %doc perl/imap/README %doc perl/imap/Changes @@ -815,6 +813,9 @@ fi %{_mandir}/man1/* %changelog +* Mon Mar 12 2007 Tomas Janousek - 2.3.8-1 +- update to latest upstream + * Wed Jan 24 2007 Tomas Janousek - 2.3.7-8 - compile with kerberos support diff --git a/sources b/sources index f6183c3..4f47b9c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -07990f3a78a3a9d728cae627e31a9caf cyrus-imapd-2.3.7.tar.gz 8f7a26b0556369827bb5c8084a3e3ea1 cyrus_sharedbackup-0.1.tar.gz +ac03b02c1ae08d52f807b58c488b204f cyrus-imapd-2.3.8.tar.gz