]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/cyrus-imapd-2.2.12-singleinstancestore.patch
GeƤndert:
[people/teissler/ipfire-2.x.git] / src / patches / cyrus-imapd-2.2.12-singleinstancestore.patch
diff --git a/src/patches/cyrus-imapd-2.2.12-singleinstancestore.patch b/src/patches/cyrus-imapd-2.2.12-singleinstancestore.patch
new file mode 100644 (file)
index 0000000..5251552
--- /dev/null
@@ -0,0 +1,144 @@
+diff -Naur cyrus-imapd-2.2.12/imap/append.c cyrus-imapd-2.2.12.cvs/imap/append.c
+--- cyrus-imapd-2.2.12/imap/append.c   2004-05-22 05:45:48.000000000 +0200
++++ cyrus-imapd-2.2.12.cvs/imap/append.c       2005-06-03 07:10:24.000000000 +0200
+@@ -1,5 +1,5 @@
+ /* append.c -- Routines for appending messages to a mailbox
+- * $Id: append.c,v 1.107 2004/05/22 03:45:48 rjs3 Exp $
++ * $Id: append.c,v 1.108 2005/06/02 15:47:50 ken3 Exp $
+  *
+  * Copyright (c)1998, 2000 Carnegie Mellon University.  All rights reserved.
+  *
+@@ -801,7 +801,8 @@
+ int append_copy(struct mailbox *mailbox, 
+               struct appendstate *as,
+               int nummsg, 
+-              struct copymsg *copymsg)
++              struct copymsg *copymsg,
++              int nolink)
+ {
+     struct mailbox *append_mailbox = &as->m;
+     int msg;
+@@ -845,7 +846,7 @@
+           mailbox_message_get_fname(mailbox, copymsg[msg].uid, fnamebuf,
+                                     sizeof(fnamebuf));
+           /* Link/copy message file */
+-          r = mailbox_copyfile(fnamebuf, fname, 0);
++          r = mailbox_copyfile(fnamebuf, fname, nolink);
+           if (r) goto fail;
+           /* Write out cache info, copy other info */
+diff -Naur cyrus-imapd-2.2.12/imap/append.h cyrus-imapd-2.2.12.cvs/imap/append.h
+--- cyrus-imapd-2.2.12/imap/append.h   2004-01-22 22:17:07.000000000 +0100
++++ cyrus-imapd-2.2.12.cvs/imap/append.h       2005-06-03 07:10:24.000000000 +0200
+@@ -1,5 +1,5 @@
+ /* append.h -- Description of messages to be copied 
+- * $Id: append.h,v 1.26 2004/01/22 21:17:07 ken3 Exp $ 
++ * $Id: append.h,v 1.27 2005/06/02 15:47:51 ken3 Exp $ 
+  *
+  * Copyright (c) 1998, 2000 Carnegie Mellon University.  All rights reserved.
+  *
+@@ -137,7 +137,7 @@
+ extern int append_copy(struct mailbox *mailbox,
+                      struct appendstate *append_mailbox,
+-                     int nummsg, struct copymsg *copymsg);
++                     int nummsg, struct copymsg *copymsg, int nolink);
+ extern int append_collectnews(struct appendstate *mailbox,
+                             const char *group, unsigned long feeduid);
+diff -Naur cyrus-imapd-2.2.12/imap/imapd.c cyrus-imapd-2.2.12.cvs/imap/imapd.c
+--- cyrus-imapd-2.2.12/imap/imapd.c    2005-02-14 07:39:55.000000000 +0100
++++ cyrus-imapd-2.2.12.cvs/imap/imapd.c        2005-06-03 07:11:52.000000000 +0200
+@@ -38,7 +38,7 @@
+  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+  */
+-/* $Id: imapd.c,v 1.490 2005/02/14 06:39:55 shadow Exp $ */
++/* $Id: imapd.c,v 1.493 2005/06/02 15:47:51 ken3 Exp $ */
+ #include <config.h>
+@@ -3593,7 +3593,7 @@
+                                              imapd_userid, mailboxname);
+     if (!r) {
+       r = index_copy(imapd_mailbox, sequence, usinguid, mailboxname,
+-                     &copyuid);
++                     &copyuid, !config_getswitch(IMAPOPT_SINGLEINSTANCESTORE));
+     }
+     index_check(imapd_mailbox, usinguid, 0);
+diff -Naur cyrus-imapd-2.2.12/imap/imapd.h cyrus-imapd-2.2.12.cvs/imap/imapd.h
+--- cyrus-imapd-2.2.12/imap/imapd.h    2004-06-22 23:36:18.000000000 +0200
++++ cyrus-imapd-2.2.12.cvs/imap/imapd.h        2005-06-03 07:10:24.000000000 +0200
+@@ -1,5 +1,5 @@
+ /* imapd.h -- Common state for IMAP daemon
+- * $Id: imapd.h,v 1.61 2004/06/22 21:36:18 rjs3 Exp $
++ * $Id: imapd.h,v 1.62 2005/06/02 15:47:57 ken3 Exp $
+  *
+  * Copyright (c) 1998-2003 Carnegie Mellon University.  All rights reserved.
+  *
+@@ -249,7 +249,7 @@
+ extern int index_thread(struct mailbox *mailbox, int algorithm,
+                       struct searchargs *searchargs, int usinguid);
+ extern int index_copy(struct mailbox *mailbox, char *sequence,
+-                       int usinguid, char *name, char **copyuidp);
++                    int usinguid, char *name, char **copyuidp, int nolink);
+ extern int index_status(struct mailbox *mailbox, char *name,
+                          int statusitems);
+diff -Naur cyrus-imapd-2.2.12/imap/index.c cyrus-imapd-2.2.12.cvs/imap/index.c
+--- cyrus-imapd-2.2.12/imap/index.c    2005-02-14 17:42:08.000000000 +0100
++++ cyrus-imapd-2.2.12.cvs/imap/index.c        2005-06-03 07:13:04.000000000 +0200
+@@ -41,7 +41,7 @@
+  *
+  */
+ /*
+- * $Id: index.c,v 1.213 2005/02/14 16:42:08 shadow Exp $
++ * $Id: index.c,v 1.218 2005/06/02 15:47:58 ken3 Exp $
+  */
+ #include <config.h>
+@@ -1145,7 +1145,8 @@
+          char *sequence, 
+          int usinguid,
+          char *name, 
+-         char **copyuidp)
++         char **copyuidp,
++         int nolink)
+ {
+     static struct copyargs copyargs;
+     int i;
+@@ -1176,7 +1177,7 @@
+     if (r) return r;
+     r = append_copy(mailbox, &append_mailbox, copyargs.nummsg,
+-                  copyargs.copymsg);
++                  copyargs.copymsg, nolink);
+     if (!r) append_commit(&append_mailbox, totalsize,
+                         &uidvalidity, &startuid, &num);
+     if (!r) {
+diff -Naur cyrus-imapd-2.2.12/lib/imapoptions cyrus-imapd-2.2.12.cvs/lib/imapoptions
+--- cyrus-imapd-2.2.12/lib/imapoptions 2004-07-21 21:07:45.000000000 +0200
++++ cyrus-imapd-2.2.12.cvs/lib/imapoptions     2005-06-03 07:14:07.000000000 +0200
+@@ -42,7 +42,7 @@
+ .\" AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ .\" 
+-.\" $Id: imapoptions,v 1.30 2004/07/21 19:07:45 rjs3 Exp $
++.\" $Id: imapoptions,v 1.33 2005/06/02 15:47:59 ken3 Exp $
+ .SH NAME
+ imapd.conf \- IMAP configuration file
+ .SH DESCRIPTION
+@@ -753,9 +753,9 @@
+    directories: ~user/.sieve. */
+ { "singleinstancestore", 1, SWITCH }
+-/* If enabled, lmtpd and nntpd attempt to only write one copy of a message per
+-   partition and create hard links, resulting in a potentially large
+-   disk savings. */
++/* If enabled, imapd, lmtpd and nntpd attempt to only write one copy
++   of a message per partition and create hard links, resulting in a
++   potentially large disk savings. */
+ { "skiplist_unsafe", 0, SWITCH }
+ /* If enabled, this option forces the skiplist cyrusdb backend to