summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEray Aslan <eras@gentoo.org>2011-06-22 10:50:32 +0000
committerEray Aslan <eras@gentoo.org>2011-06-22 10:50:32 +0000
commit6aae4e994f0677d4f12f4832c6942136cb88e2f1 (patch)
tree87a68349ec40dee756797491ff75b0e5717ac87c /net-mail/cyrus-imapd
parentwww-servers/tomcat: version bump (diff)
downloadgentoo-2-6aae4e994f0677d4f12f4832c6942136cb88e2f1.tar.gz
gentoo-2-6aae4e994f0677d4f12f4832c6942136cb88e2f1.tar.bz2
gentoo-2-6aae4e994f0677d4f12f4832c6942136cb88e2f1.zip
Clean up FILESDIR
(Portage version: 2.1.10.3/cvs/Linux x86_64)
Diffstat (limited to 'net-mail/cyrus-imapd')
-rw-r--r--net-mail/cyrus-imapd/ChangeLog14
-rw-r--r--net-mail/cyrus-imapd/files/cyrus-imapd-2.2-libwrap.patch11
-rw-r--r--net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-add-db47-support.patch12
-rw-r--r--net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-bug283596-2.patch80
-rw-r--r--net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-fix-db-rpath.patch40
-rw-r--r--net-mail/cyrus-imapd/files/cyrus-imapd-2.3.16+db-5.0.patch49
-rw-r--r--net-mail/cyrus-imapd/files/cyrus-imapd-strip.patch11
-rw-r--r--net-mail/cyrus-imapd/files/kolab/2.3.14/Annotations2.patch356
-rw-r--r--net-mail/cyrus-imapd/files/kolab/2.3.14/Folder-names.patch17
-rw-r--r--net-mail/cyrus-imapd/files/kolab/2.3.14/Groups2.patch232
-rw-r--r--net-mail/cyrus-imapd/files/kolab/2.3.14/Logging.patch58
-rw-r--r--net-mail/cyrus-imapd/files/kolab/2.3.14/UID.patch117
-rw-r--r--net-mail/cyrus-imapd/files/kolab/2.3.14/timsieved_starttls-sendcaps.patch21
13 files changed, 13 insertions, 1005 deletions
diff --git a/net-mail/cyrus-imapd/ChangeLog b/net-mail/cyrus-imapd/ChangeLog
index 347cd6f7bcee..975127985e89 100644
--- a/net-mail/cyrus-imapd/ChangeLog
+++ b/net-mail/cyrus-imapd/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for net-mail/cyrus-imapd
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-mail/cyrus-imapd/ChangeLog,v 1.172 2011/06/21 06:21:58 eras Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-mail/cyrus-imapd/ChangeLog,v 1.173 2011/06/22 10:50:31 eras Exp $
+
+ 22 Jun 2011; Eray Aslan <eras@gentoo.org>
+ -files/cyrus-imapd-2.2-libwrap.patch,
+ -files/cyrus-imapd-2.3.14-add-db47-support.patch,
+ -files/cyrus-imapd-2.3.14-bug283596-2.patch,
+ -files/cyrus-imapd-2.3.14-fix-db-rpath.patch,
+ -files/kolab/2.3.14/Annotations2.patch,
+ -files/kolab/2.3.14/Folder-names.patch, -files/kolab/2.3.14/Groups2.patch,
+ -files/kolab/2.3.14/UID.patch, -files/cyrus-imapd-2.3.16+db-5.0.patch,
+ -files/cyrus-imapd-strip.patch, -files/kolab/2.3.14/Logging.patch,
+ -files/kolab/2.3.14/timsieved_starttls-sendcaps.patch:
+ Clean up FILESDIR
21 Jun 2011; Eray Aslan <eras@gentoo.org> metadata.xml:
Maintainer changed to net-mail with dertobi123's permission
diff --git a/net-mail/cyrus-imapd/files/cyrus-imapd-2.2-libwrap.patch b/net-mail/cyrus-imapd/files/cyrus-imapd-2.2-libwrap.patch
deleted file mode 100644
index 6157c879ae88..000000000000
--- a/net-mail/cyrus-imapd/files/cyrus-imapd-2.2-libwrap.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- master/Makefile.in.orig 2004-10-17 19:48:01.923901016 -0700
-+++ master/Makefile.in 2004-10-17 19:48:33.639079576 -0700
-@@ -59,7 +59,7 @@
-
- CFLAGS = @CFLAGS@
- LDFLAGS = @LDFLAGS@ @COM_ERR_LDFLAGS@
--LIBS = ../lib/libcyrus_min.a @LIB_UCDSNMP@ @LIBS@ @COM_ERR_LIBS@
-+LIBS = ../lib/libcyrus_min.a @LIB_UCDSNMP@ @LIBS@ @COM_ERR_LIBS@ @LIB_WRAP@
-
- SHELL = /bin/sh
- MAKEDEPEND = @MAKEDEPEND@
diff --git a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-add-db47-support.patch b/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-add-db47-support.patch
deleted file mode 100644
index ea31cda149f4..000000000000
--- a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-add-db47-support.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur cmulocal.orig/berkdb.m4 cmulocal/berkdb.m4
---- cmulocal.orig/berkdb.m4 2007-08-15 19:18:01.000000000 +0200
-+++ cmulocal/berkdb.m4 2009-07-07 19:34:55.000000000 +0200
-@@ -213,7 +213,7 @@
- fi
-
- saved_LIBS=$LIBS
-- for dbname in ${with_bdb} db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
-+ for dbname in ${with_bdb} db-4.7 db4.7 db-4.6 db4.6 db46 db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
- do
- LIBS="$saved_LIBS -l$dbname"
- AC_TRY_LINK([#include <stdio.h>
diff --git a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-bug283596-2.patch b/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-bug283596-2.patch
deleted file mode 100644
index a223fe41dace..000000000000
--- a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-bug283596-2.patch
+++ /dev/null
@@ -1,80 +0,0 @@
---- src/sieve/script.c 2008/03/24 20:08:46 1.67
-+++ src/sieve/script.c 2009/09/02 13:56:18 1.68
-@@ -40,7 +40,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: script.c,v 1.67 2008/03/24 20:08:46 murch Exp $
-+ * $Id: script.c,v 1.68 2009/09/02 13:56:18 brong Exp $
- */
-
- #ifdef HAVE_CONFIG_H
-@@ -688,7 +688,7 @@ static int do_sieve_error(int ret,
- ret |= keep_ret;
- if (keep_ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Kept\n");
- else {
- implicit_keep = 0; /* don't try an implicit keep again */
-@@ -742,7 +742,7 @@ static int do_action_list(sieve_interp_t
-
- if (ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Rejected with: %s\n", a->u.rej.msg);
-
- break;
-@@ -757,7 +757,7 @@ static int do_action_list(sieve_interp_t
-
- if (ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Filed into: %s\n",a->u.fil.mailbox);
- break;
- case ACTION_KEEP:
-@@ -770,7 +770,7 @@ static int do_action_list(sieve_interp_t
- &errmsg);
- if (ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Kept\n");
- break;
- case ACTION_REDIRECT:
-@@ -783,7 +783,7 @@ static int do_action_list(sieve_interp_t
- &errmsg);
- if (ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Redirected to %s\n", a->u.red.addr);
- break;
- case ACTION_DISCARD:
-@@ -794,7 +794,7 @@ static int do_action_list(sieve_interp_t
- &errmsg);
- if (ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Discarded\n");
- break;
-
-@@ -820,12 +820,12 @@ static int do_action_list(sieve_interp_t
-
- if (ret == SIEVE_OK)
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Sent vacation reply\n");
-
- } else if (ret == SIEVE_DONE) {
- snprintf(actions_string+strlen(actions_string),
-- sizeof(actions_string)-strlen(actions_string),
-+ ACTIONS_STRING_LEN-strlen(actions_string),
- "Vacation reply suppressed\n");
-
- ret = SIEVE_OK;
diff --git a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-fix-db-rpath.patch b/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-fix-db-rpath.patch
deleted file mode 100644
index 9b74a8db2516..000000000000
--- a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.14-fix-db-rpath.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- cyrus-imapd-2.3.14.old/cmulocal/cyrus.m4 2003-10-08 22:35:24.000000000 +0200
-+++ cyrus-imapd-2.3.14/cmulocal/cyrus.m4 2009-09-18 04:32:41.000000000 +0200
-@@ -11,35 +11,12 @@
- dnl (so the runpath for shared libraries is set).
- AC_DEFUN([CMU_ADD_LIBPATH], [
- # this is CMU ADD LIBPATH
-- if test "$andrew_runpath_switch" = "none" ; then
-- LDFLAGS="-L$1 ${LDFLAGS}"
-- else
-- LDFLAGS="-L$1 $andrew_runpath_switch$1 ${LDFLAGS}"
-- fi
-+ LDFLAGS="-L$1 ${LDFLAGS}"
- ])
-
- dnl add -L(1st arg), and possibly (runpath switch)(1st arg), to (2nd arg)
- dnl (so the runpath for shared libraries is set).
- AC_DEFUN([CMU_ADD_LIBPATH_TO], [
- # this is CMU ADD LIBPATH TO
-- if test "$andrew_runpath_switch" = "none" ; then
-- $2="-L$1 ${$2}"
-- else
-- $2="-L$1 ${$2} $andrew_runpath_switch$1"
-- fi
-+ $2="-L$1 ${$2}"
- ])
--
--dnl runpath initialization
--AC_DEFUN([CMU_GUESS_RUNPATH_SWITCH], [
-- # CMU GUESS RUNPATH SWITCH
-- AC_CACHE_CHECK(for runpath switch, andrew_runpath_switch, [
-- # first, try -R
-- SAVE_LDFLAGS="${LDFLAGS}"
-- LDFLAGS="-R /usr/lib"
-- AC_TRY_LINK([],[],[andrew_runpath_switch="-R"], [
-- LDFLAGS="-Wl,-rpath,/usr/lib"
-- AC_TRY_LINK([],[],[andrew_runpath_switch="-Wl,-rpath,"],
-- [andrew_runpath_switch="none"])
-- ])
-- LDFLAGS="${SAVE_LDFLAGS}"
-- ])])
diff --git a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.16+db-5.0.patch b/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.16+db-5.0.patch
deleted file mode 100644
index 319abf1f6bb7..000000000000
--- a/net-mail/cyrus-imapd/files/cyrus-imapd-2.3.16+db-5.0.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Index: cyrus-imapd-2.3.16/lib/cyrusdb_berkeley.c
-===================================================================
---- cyrus-imapd-2.3.16.orig/lib/cyrusdb_berkeley.c
-+++ cyrus-imapd-2.3.16/lib/cyrusdb_berkeley.c
-@@ -108,7 +108,7 @@ static void db_panic(DB_ENV *dbenv __att
- exit(EC_TEMPFAIL);
- }
-
--#if (DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 3)
-+#if ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 3)) || (DB_VERSION_MAJOR >= 5)
- static void db_err(const DB_ENV *dbenv __attribute__((unused)),
- const char *db_prfx, const char *buffer)
- #else
-@@ -164,7 +164,7 @@ static int init(const char *dbdir, int m
- #endif
- }
-
--#if (DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 3)
-+#if ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 3)) || (DB_VERSION_MAJOR >= 5)
- dbenv->set_msgcall(dbenv, db_msg);
- #endif
- dbenv->set_errcall(dbenv, db_err);
-@@ -282,7 +282,7 @@ static int mysync(void)
-
- assert(dbinit);
-
--#if !(DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
-+#if !((DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5)
- do {
- #endif
- #if (DB_VERSION_MAJOR > 3) || ((DB_VERSION_MAJOR == 3) && (DB_VERSION_MINOR > 0))
-@@ -290,7 +290,7 @@ static int mysync(void)
- #else
- r = txn_checkpoint(dbenv, 0, 0);
- #endif
--#if !(DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
-+#if !((DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5)
- } while (r == DB_INCOMPLETE); /* Never returned by BDB 4.1 */
- #endif
- if (r) {
-@@ -413,7 +413,7 @@ static int myopen(const char *fname, DBT
- /* xxx set comparator! */
- if (flags & CYRUSDB_MBOXSORT) db->set_bt_compare(db, mbox_compar);
-
--#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
-+#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || (DB_VERSION_MAJOR >= 5)
- r = (db->open)(db, NULL, fname, NULL, type, dbflags | DB_AUTO_COMMIT, 0664);
- #else
- r = (db->open)(db, fname, NULL, type, dbflags, 0664);
diff --git a/net-mail/cyrus-imapd/files/cyrus-imapd-strip.patch b/net-mail/cyrus-imapd/files/cyrus-imapd-strip.patch
deleted file mode 100644
index fa82a4b18d8d..000000000000
--- a/net-mail/cyrus-imapd/files/cyrus-imapd-strip.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- imtest/Makefile.in.orig 2007-09-07 21:45:46.000000000 +0200
-+++ imtest/Makefile.in 2007-09-07 21:45:52.000000000 +0200
-@@ -72,7 +72,7 @@
- all: imtest
-
- install:
-- $(INSTALL) -s -m 755 imtest $(DESTDIR)$(exec_prefix)/bin
-+ $(INSTALL) -m 755 imtest $(DESTDIR)$(exec_prefix)/bin
- ln -f $(DESTDIR)$(exec_prefix)/bin/imtest $(DESTDIR)$(exec_prefix)/bin/pop3test
- ln -f $(DESTDIR)$(exec_prefix)/bin/imtest $(DESTDIR)$(exec_prefix)/bin/nntptest
- ln -f $(DESTDIR)$(exec_prefix)/bin/imtest $(DESTDIR)$(exec_prefix)/bin/lmtptest
diff --git a/net-mail/cyrus-imapd/files/kolab/2.3.14/Annotations2.patch b/net-mail/cyrus-imapd/files/kolab/2.3.14/Annotations2.patch
deleted file mode 100644
index 87fa920fc08f..000000000000
--- a/net-mail/cyrus-imapd/files/kolab/2.3.14/Annotations2.patch
+++ /dev/null
@@ -1,356 +0,0 @@
-Provides a new version of annotation support for the cyrus imapd server [Version: 2.3.9]
-
-diff -r 321cda1d6136 imap/annotate.c
---- a/imap/annotate.c Tue Apr 22 10:44:56 2008 +0200
-+++ b/imap/annotate.c Tue Apr 22 10:47:04 2008 +0200
-@@ -90,6 +90,8 @@ int (*proxy_fetch_func)(const char *serv
- struct strlist *attribute_pat) = NULL;
- int (*proxy_store_func)(const char *server, const char *mbox_pat,
- struct entryattlist *entryatts) = NULL;
-+
-+void init_annotation_definitions();
-
- /* String List Management */
- /*
-@@ -237,6 +239,8 @@ void annotatemore_init(int myflags,
- if (store_func) {
- proxy_store_func = store_func;
- }
-+
-+ init_annotation_definitions();
- }
-
- void annotatemore_open(char *fname)
-@@ -1832,6 +1836,224 @@ const struct annotate_st_entry mailbox_r
- { NULL, 0, ANNOTATION_PROXY_T_INVALID, 0, 0, NULL, NULL }
- };
-
-+struct annotate_st_entry_list *server_entries_list = NULL;
-+struct annotate_st_entry_list *mailbox_rw_entries_list = NULL;
-+
-+enum {
-+ ANNOTATION_SCOPE_SERVER = 1,
-+ ANNOTATION_SCOPE_MAILBOX = 2
-+};
-+
-+const struct annotate_attrib annotation_scope_names[] =
-+{
-+ { "server", ANNOTATION_SCOPE_SERVER },
-+ { "mailbox", ANNOTATION_SCOPE_MAILBOX },
-+ { NULL, 0 }
-+};
-+
-+const struct annotate_attrib annotation_proxy_type_names[] =
-+{
-+ { "proxy", PROXY_ONLY },
-+ { "backend", BACKEND_ONLY },
-+ { "proxy_and_backend", PROXY_AND_BACKEND },
-+ { NULL, 0 }
-+};
-+
-+const struct annotate_attrib attribute_type_names[] =
-+{
-+ { "content-type", ATTRIB_TYPE_CONTENTTYPE },
-+ { "string", ATTRIB_TYPE_STRING },
-+ { "boolean", ATTRIB_TYPE_BOOLEAN },
-+ { "uint", ATTRIB_TYPE_UINT },
-+ { "int", ATTRIB_TYPE_INT },
-+ { NULL, 0 }
-+};
-+
-+#define ANNOT_DEF_MAXLINELEN 1024
-+
-+int table_lookup(const struct annotate_attrib *table,
-+ char* name,
-+ size_t namelen,
-+ char* errmsg)
-+/* search in table for the value given by name and namelen (name is null-terminated,
-+ but possibly more than just the key). errmsg is used to hint the user where we failed */
-+{
-+ char errbuf[ANNOT_DEF_MAXLINELEN*2];
-+ int entry;
-+
-+ for (entry = 0; table[entry].name &&
-+ (strncasecmp(table[entry].name, name, namelen)
-+ || table[entry].name[namelen] != '\0'); entry++);
-+
-+ if (! table[entry].name) {
-+ sprintf(errbuf, "invalid %s at '%s'", errmsg, name);
-+ fatal(errbuf, EC_CONFIG);
-+ }
-+ return table[entry].entry;
-+}
-+
-+char *consume_comma(char* p)
-+ /* advance beyond the next ',', skipping whitespace, fail if next non-space is no comma */
-+{
-+ char errbuf[ANNOT_DEF_MAXLINELEN*2];
-+
-+ for (; *p && isspace(*p); p++);
-+ if (*p != ',') {
-+ sprintf(errbuf, "',' expected, '%s' found parsing annotation definition",
-+ p);
-+ fatal(errbuf, EC_CONFIG);
-+ }
-+ p++;
-+ for (; *p && isspace(*p); p++);
-+
-+ return p;
-+}
-+
-+int parse_table_lookup_bitmask(const struct annotate_attrib *table,
-+ char** s,
-+ char* errmsg)
-+ /* parses strings of the form value1 [ value2 [ ... ]]
-+ value1 is mapped via table to ints and the result ored
-+ whitespace is allowed between value names and punctuation
-+ the field must end in '\0' or ','
-+ s is advanced to '\0' or ','
-+ on error errmsg is used to identify item to be parsed
-+ */
-+{
-+ char errbuf[ANNOT_DEF_MAXLINELEN*2];
-+ int result = 0;
-+ char *p, *p2;
-+
-+ p = *s;
-+ do {
-+ p2 = p;
-+ for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++);
-+ result |= table_lookup(table, p2, p-p2, errmsg);
-+ for (; *p && isspace(*p); p++);
-+ } while (*p && *p != ',');
-+
-+ *s = p;
-+ return result;
-+}
-+
-+void init_annotation_definitions()
-+{
-+ char *p, *p2, *tmp;
-+ const char *filename;
-+ char aline[ANNOT_DEF_MAXLINELEN];
-+ char errbuf[ANNOT_DEF_MAXLINELEN*2];
-+ struct annotate_st_entry_list *se, *me;
-+ struct annotate_st_entry *ae;
-+ int i;
-+ FILE* f;
-+
-+ /* NOTE: we assume # static entries > 0 */
-+ server_entries_list = xmalloc(sizeof(struct annotate_st_entry_list));
-+ mailbox_rw_entries_list = xmalloc(sizeof(struct annotate_st_entry_list));
-+ se = server_entries_list;
-+ me = mailbox_rw_entries_list;
-+ /* copy static entries into list */
-+ for (i = 0; server_entries[i].name;i++) {
-+ se->entry = &server_entries[i];
-+ if (server_entries[i+1].name) {
-+ se->next = xmalloc(sizeof(struct annotate_st_entry_list));
-+ se = se->next;
-+ }
-+ }
-+ /* copy static entries into list */
-+ for (i = 0; mailbox_rw_entries[i].name;i++) {
-+ me->entry = &mailbox_rw_entries[i];
-+ if (mailbox_rw_entries[i+1].name) {
-+ me->next = xmalloc(sizeof(struct annotate_st_entry_list));
-+ me = me->next;
-+ }
-+ }
-+
-+ /* parse config file */
-+ filename = config_getstring(IMAPOPT_ANNOTATION_DEFINITIONS);
-+
-+ if (! filename) {
-+ se->next = NULL;
-+ me->next = NULL;
-+ return;
-+ }
-+
-+ f = fopen(filename,"r");
-+ if (! f) {
-+ sprintf(errbuf, "could not open annotation definiton %s", filename);
-+ fatal(errbuf, EC_CONFIG);
-+ }
-+
-+ while (fgets(aline, sizeof(aline), f)) {
-+ // remove leading space, skip blank lines and comments
-+ for (p = aline; *p && isspace(*p); p++);
-+ if (!*p || *p == '#') continue;
-+
-+ // note, we only do the most basic validity checking and may
-+ // be more restrictive than neccessary
-+
-+ ae = xmalloc(sizeof(struct annotate_st_entry));
-+
-+ p2 = p;
-+ for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++);
-+ // TV-TODO: should test for empty
-+ ae->name = xstrndup(p2, p-p2);
-+
-+ p = consume_comma(p);
-+
-+ p2 = p;
-+ for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++);
-+
-+ if (table_lookup(annotation_scope_names, p2, p-p2,
-+ "annotation scope")==ANNOTATION_SCOPE_SERVER) {
-+ se->next = xmalloc(sizeof(struct annotate_st_entry_list));
-+ se = se->next;
-+ se->entry = ae;
-+ }
-+ else {
-+ me->next = xmalloc(sizeof(struct annotate_st_entry_list));
-+ me = me->next;
-+ me->entry = ae;
-+ }
-+
-+ p = consume_comma(p);
-+ p2 = p;
-+ for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++);
-+ ae->type = table_lookup(attribute_type_names, p2, p-p2,
-+ "attribute type");
-+
-+ p = consume_comma(p);
-+ ae->proxytype = parse_table_lookup_bitmask(annotation_proxy_type_names,
-+ &p,
-+ "annotation proxy type");
-+
-+ p = consume_comma(p);
-+ ae->attribs = parse_table_lookup_bitmask(annotation_attributes,
-+ &p,
-+ "annotation attributes");
-+
-+ p = consume_comma(p);
-+ p2 = p;
-+ for (; *p && (isalnum(*p) || *p=='.' || *p=='-' || *p=='_' || *p=='/');p++);
-+ tmp = xstrndup(p2, p-p2);
-+ ae->acl = cyrus_acl_strtomask(tmp);
-+ free(tmp);
-+
-+ for (; *p && isspace(*p); p++);
-+ if (*p) {
-+ sprintf(errbuf, "junk at end of line: '%s'", p);
-+ fatal(errbuf, EC_CONFIG);
-+ }
-+
-+ ae->set = annotation_set_todb;
-+ ae->rock = NULL;
-+ }
-+
-+ fclose(f);
-+ se->next = NULL;
-+ me->next = NULL;
-+}
-+
- int annotatemore_store(char *mailbox,
- struct entryattlist *l,
- struct namespace *namespace,
-@@ -1843,7 +2065,7 @@ int annotatemore_store(char *mailbox,
- struct entryattlist *e = l;
- struct attvaluelist *av;
- struct storedata sdata;
-- const struct annotate_st_entry *entries;
-+ const struct annotate_st_entry_list *entries, *currententry;
- time_t now = time(0);
-
- memset(&sdata, 0, sizeof(struct storedata));
-@@ -1854,45 +2076,45 @@ int annotatemore_store(char *mailbox,
-
- if (!mailbox[0]) {
- /* server annotations */
-- entries = server_entries;
-+ entries = server_entries_list;
- }
- else {
- /* mailbox annotation(s) */
-- entries = mailbox_rw_entries;
-+ entries = mailbox_rw_entries_list;
- }
-
- /* Build a list of callbacks for storing the annotations */
- while (e) {
-- int entrycount, attribs;
-+ int attribs;
- struct annotate_st_entry_list *nentry = NULL;
-
- /* See if we support this entry */
-- for (entrycount = 0;
-- entries[entrycount].name;
-- entrycount++) {
-- if (!strcmp(e->entry, entries[entrycount].name)) {
-+ for (currententry = entries;
-+ currententry;
-+ currententry = currententry->next) {
-+ if (!strcmp(e->entry, currententry->entry->name)) {
- break;
- }
- }
-- if (!entries[entrycount].name) {
-+ if (!currententry) {
- /* unknown annotation */
- return IMAP_PERMISSION_DENIED;
- }
-
- /* Add this entry to our list only if it
- applies to our particular server type */
-- if ((entries[entrycount].proxytype != PROXY_ONLY)
-+ if ((currententry->entry->proxytype != PROXY_ONLY)
- || proxy_store_func) {
- nentry = xzmalloc(sizeof(struct annotate_st_entry_list));
- nentry->next = sdata.entry_list;
-- nentry->entry = &(entries[entrycount]);
-+ nentry->entry = currententry->entry;
- nentry->shared.modifiedsince = now;
- nentry->priv.modifiedsince = now;
- sdata.entry_list = nentry;
- }
-
- /* See if we are allowed to set the given attributes. */
-- attribs = entries[entrycount].attribs;
-+ attribs = currententry->entry->attribs;
- av = e->attvalues;
- while (av) {
- const char *value;
-@@ -1902,7 +2124,7 @@ int annotatemore_store(char *mailbox,
- goto cleanup;
- }
- value = annotate_canon_value(av->value,
-- entries[entrycount].type);
-+ currententry->entry->type);
- if (!value) {
- r = IMAP_ANNOTATION_BADVALUE;
- goto cleanup;
-@@ -1928,7 +2150,7 @@ int annotatemore_store(char *mailbox,
- goto cleanup;
- }
- value = annotate_canon_value(av->value,
-- entries[entrycount].type);
-+ currententry->entry->type);
- if (!value) {
- r = IMAP_ANNOTATION_BADVALUE;
- goto cleanup;
-@@ -2110,3 +2332,10 @@ int annotatemore_delete(const char *mbox
-
- return annotatemore_rename(mboxname, NULL, NULL, NULL);
- }
-+
-+/* This file contains code Copyright (c) 2006 by Thomas Viehmann.
-+ * You may distribute source code or binaries under the conditions
-+ * conditions given in the CMU license, provided this note stays intact
-+ * in the distributed source. If you want to distribute my code without
-+ * this notice, do contact me at <tv@beamnet.de>.
-+ */
-diff -r 321cda1d6136 lib/imapoptions
---- a/lib/imapoptions Tue Apr 22 10:44:56 2008 +0200
-+++ b/lib/imapoptions Tue Apr 22 10:47:04 2008 +0200
-@@ -172,6 +172,9 @@ are listed with ``<none>''.
- /* Should non-admin users be allowed to set ACLs for the 'anyone'
- user on their mailboxes? In a large organization this can cause
- support problems, but it's enabled by default. */
-+
-+{ "annotation_definitions", NULL, STRING }
-+/* File containing annotation definitions. */
-
- { "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5")}
- /* The authorization mechanism to use. */
diff --git a/net-mail/cyrus-imapd/files/kolab/2.3.14/Folder-names.patch b/net-mail/cyrus-imapd/files/kolab/2.3.14/Folder-names.patch
deleted file mode 100644
index 2f8689ae4ed4..000000000000
--- a/net-mail/cyrus-imapd/files/kolab/2.3.14/Folder-names.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Modifies the set of accepted characters in folder names for the cyrus imapd server [Version: 2.3.9]
-
-diff -r 17e54b46d7b6 imap/mboxname.c
---- a/imap/mboxname.c Mon Oct 27 18:44:56 2008 +0100
-+++ b/imap/mboxname.c Mon Oct 27 18:47:11 2008 +0100
-@@ -713,8 +713,10 @@
- /*
- * Apply site policy restrictions on mailbox names.
- * Restrictions are hardwired for now.
-+ * original definition
-+#define GOODCHARS " #$'+,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~"
- */
--#define GOODCHARS " #$'+,-.0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~"
-+#define GOODCHARS " #$%'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~"
- int mboxname_policycheck(char *name)
- {
- unsigned i;
diff --git a/net-mail/cyrus-imapd/files/kolab/2.3.14/Groups2.patch b/net-mail/cyrus-imapd/files/kolab/2.3.14/Groups2.patch
deleted file mode 100644
index 36ba6b58d381..000000000000
--- a/net-mail/cyrus-imapd/files/kolab/2.3.14/Groups2.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-diff -r 0d5aacd84718 lib/auth_unix.c
---- a/lib/auth_unix.c Mon Oct 27 18:37:49 2008 +0100
-+++ b/lib/auth_unix.c Wed Apr 01 18:19:19 2009 +0200
-@@ -46,12 +46,133 @@
- #include <stdlib.h>
- #include <pwd.h>
- #include <grp.h>
-+#include <stdio.h>
- #include <ctype.h>
- #include <string.h>
-
- #include "auth.h"
- #include "libcyr_cfg.h"
- #include "xmalloc.h"
-+
-+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
-+/*
-+ * __getgrent.c - This file is part of the libc-8086/grp package for ELKS,
-+ * Copyright (C) 1995, 1996 Nat Friedman <ndf@linux.mit.edu>.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the Free
-+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#include <unistd.h>
-+#include <string.h>
-+#include <errno.h>
-+
-+static struct group *__getgrent(int grp_fd, char *line_buff, char **members)
-+{
-+ short line_index;
-+ short buff_size;
-+ static struct group group;
-+ register char *ptr;
-+ char *field_begin;
-+ short member_num;
-+ char *endptr;
-+ int line_len;
-+
-+ /* We use the restart label to handle malformatted lines */
-+ restart:
-+ line_index = 0;
-+ buff_size = 256;
-+
-+ line_buff = realloc(line_buff, buff_size);
-+ while (1) {
-+ if ((line_len = read(grp_fd, line_buff + line_index,
-+ buff_size - line_index)) <= 0) {
-+ return NULL;
-+ }
-+ field_begin = strchr(line_buff, '\n');
-+ if (field_begin != NULL) {
-+ lseek(grp_fd,
-+ (long) (1 + field_begin -
-+ (line_len + line_index + line_buff)), SEEK_CUR);
-+ *field_begin = '\0';
-+ if (*line_buff == '#' || *line_buff == ' '
-+ || *line_buff == '\n' || *line_buff == '\t')
-+ goto restart;
-+ break;
-+ } else {
-+ /* Allocate some more space */
-+ line_index = buff_size;
-+ buff_size += 256;
-+ line_buff = realloc(line_buff, buff_size);
-+ }
-+ }
-+
-+ /* Now parse the line */
-+ group.gr_name = line_buff;
-+ ptr = strchr(line_buff, ':');
-+ if (ptr == NULL)
-+ goto restart;
-+ *ptr++ = '\0';
-+
-+ group.gr_passwd = ptr;
-+ ptr = strchr(ptr, ':');
-+ if (ptr == NULL)
-+ goto restart;
-+ *ptr++ = '\0';
-+
-+ field_begin = ptr;
-+ ptr = strchr(ptr, ':');
-+ if (ptr == NULL)
-+ goto restart;
-+ *ptr++ = '\0';
-+
-+ group.gr_gid = (gid_t) strtoul(field_begin, &endptr, 10);
-+ if (*endptr != '\0')
-+ goto restart;
-+
-+ member_num = 0;
-+ field_begin = ptr;
-+
-+ if (members != NULL)
-+ free(members);
-+ members = (char **) malloc((member_num + 1) * sizeof(char *));
-+ for ( ; field_begin && *field_begin != '\0'; field_begin = ptr) {
-+ if ((ptr = strchr(field_begin, ',')) != NULL)
-+ *ptr++ = '\0';
-+ members[member_num++] = field_begin;
-+ members = (char **) realloc(members,
-+ (member_num + 1) * sizeof(char *));
-+ }
-+ members[member_num] = NULL;
-+
-+ group.gr_mem = members;
-+ return &group;
-+}
-+
-+static char *line_buff = NULL;
-+static char **members = NULL;
-+
-+struct group *fgetgrent(FILE *file)
-+{
-+ if (file == NULL) {
-+ errno = EINTR;
-+ return NULL;
-+ }
-+ return __getgrent(fileno(file), line_buff, members);
-+}
-+#endif /* __FreeBSD__ */
-
- struct auth_state {
- char userid[81];
-@@ -140,6 +261,25 @@
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
-
-+static struct group* fgetgrnam(const char* name)
-+{
-+ struct group *grp;
-+ FILE *groupfile;
-+
-+ groupfile = fopen("/etc/imapd.group", "r");
-+ if (!groupfile) groupfile = fopen("/etc/group", "r");
-+ if (groupfile) {
-+ while ((grp = fgetgrent(groupfile))) {
-+ if (strcmp(grp->gr_name, name) == 0) {
-+ fclose(groupfile);
-+ return grp;
-+ }
-+ }
-+ }
-+ if (groupfile) fclose(groupfile);
-+ return NULL;
-+}
-+
- /*
- * Convert 'identifier' into canonical form.
- * Returns a pointer to a static buffer containing the canonical form
-@@ -175,7 +315,7 @@
- */
-
- if (!strncmp(retbuf, "group:", 6)) {
-- grp = getgrnam(retbuf+6);
-+ grp = fgetgrnam(retbuf+6);
- if (!grp) return NULL;
- if (strlen(grp->gr_name) >= sizeof(retbuf)-6)
- return NULL;
-@@ -223,11 +363,12 @@
- struct auth_state *newstate;
- struct passwd *pwd;
- struct group *grp;
--#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__)
-+#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__)
- gid_t gid, *groupids = NULL;
- int ret, ngroups = 10;
- #else
- char **mem;
-+ FILE *groupfile;
- #endif
-
- identifier = mycanonifyid(identifier, 0);
-@@ -245,7 +386,7 @@
-
- pwd = getpwnam(identifier);
-
--#if defined(HAVE_GETGROUPLIST) && defined(__GLIBC__)
-+#if 0 && defined(HAVE_GETGROUPLIST) && defined(__GLIBC__)
- gid = pwd ? pwd->pw_gid : (gid_t) -1;
-
- /* get the group ids */
-@@ -283,20 +424,23 @@
- if (groupids) free(groupids);
-
- #else /* !HAVE_GETGROUPLIST */
-- setgrent();
-- while ((grp = getgrent())) {
-- for (mem = grp->gr_mem; *mem; mem++) {
-- if (!strcmp(*mem, identifier)) break;
-- }
-+ groupfile = fopen("/etc/imapd.group", "r");
-+ if (!groupfile) groupfile = fopen("/etc/group", "r");
-+ if (groupfile) {
-+ while ((grp = fgetgrent(groupfile))) {
-+ for (mem = grp->gr_mem; *mem; mem++) {
-+ if (!strcmp(*mem, identifier)) break;
-+ }
-
-- if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) {
-- newstate->ngroups++;
-- newstate->group = (char **)xrealloc((char *)newstate->group,
-- newstate->ngroups * sizeof(char *));
-- newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name);
-- }
-- }
-- endgrent();
-+ if (*mem || (pwd && pwd->pw_gid == grp->gr_gid)) {
-+ newstate->ngroups++;
-+ newstate->group = (char **)xrealloc((char *)newstate->group,
-+ newstate->ngroups * sizeof(char *));
-+ newstate->group[newstate->ngroups-1] = xstrdup(grp->gr_name);
-+ }
-+ }
-+ fclose(groupfile);
-+ }
- #endif /* HAVE_GETGROUPLIST */
-
- return newstate;
diff --git a/net-mail/cyrus-imapd/files/kolab/2.3.14/Logging.patch b/net-mail/cyrus-imapd/files/kolab/2.3.14/Logging.patch
deleted file mode 100644
index c0bd2faec033..000000000000
--- a/net-mail/cyrus-imapd/files/kolab/2.3.14/Logging.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Provides improved logging for the cyrus imapd server [Version: 2.3.9]
-
-diff -r 6162fc947b22 imap/append.c
---- a/imap/append.c Tue Dec 11 11:22:03 2007 +0100
-+++ b/imap/append.c Tue Dec 11 11:22:13 2007 +0100
-@@ -648,6 +648,9 @@ int append_fromstage(struct appendstate
-
- /* ok, we've successfully added a message */
- as->quota_used += message_index.size;
-+
-+ syslog(LOG_DEBUG, "append_fromstage: message %d added to %s",
-+ message_index.uid, mailbox->name );
-
- return 0;
- }
-diff -r 6162fc947b22 imap/imapd.c
---- a/imap/imapd.c Tue Dec 11 11:22:03 2007 +0100
-+++ b/imap/imapd.c Tue Dec 11 11:22:13 2007 +0100
-@@ -3509,17 +3509,19 @@ void cmd_close(char *tag)
- if (!r) sync_log_mailbox(imapd_mailbox->name);
- }
-
-+ if (r) {
-+ prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r));
-+ }
-+ else {
-+ prot_printf(imapd_out, "%s OK %s\r\n", tag,
-+ error_message(IMAP_OK_COMPLETED));
-+ syslog(LOG_DEBUG, "cmd_expunge: user %s, mailbox %s, sequence %s",
-+ imapd_userid, imapd_mailbox->name, "''");
-+ }
-+
- index_closemailbox(imapd_mailbox);
- mailbox_close(imapd_mailbox);
- imapd_mailbox = 0;
--
-- if (r) {
-- prot_printf(imapd_out, "%s NO %s\r\n", tag, error_message(r));
-- }
-- else {
-- prot_printf(imapd_out, "%s OK %s\r\n", tag,
-- error_message(IMAP_OK_COMPLETED));
-- }
- }
-
- /*
-diff -r 6162fc947b22 imap/mailbox.c
---- a/imap/mailbox.c Tue Dec 11 11:22:03 2007 +0100
-+++ b/imap/mailbox.c Tue Dec 11 11:22:13 2007 +0100
-@@ -2520,6 +2520,8 @@ int mailbox_expunge(struct mailbox *mail
- *(fname->tail)++ = '/';
- fname->len++;
- for (msgno = 0; msgno < numdeleted; msgno++) {
-+ syslog(LOG_DEBUG, "mailbox_expunge: removing mail %s:%d",
-+ mailbox->name, deleted[msgno]);
- mailbox_message_get_fname(mailbox, deleted[msgno],
- fname->tail,
- sizeof(fname->buf) - fname->len);
diff --git a/net-mail/cyrus-imapd/files/kolab/2.3.14/UID.patch b/net-mail/cyrus-imapd/files/kolab/2.3.14/UID.patch
deleted file mode 100644
index ecc960d7bffe..000000000000
--- a/net-mail/cyrus-imapd/files/kolab/2.3.14/UID.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-Allows login by uid rather than the mail address on the cyrus imapd server [Version: 2.3.9]
-
-diff -r 2ebe14b7db9d configure
---- a/configure Mon Oct 27 18:47:12 2008 +0100
-+++ b/configure Mon Oct 27 18:48:18 2008 +0100
-@@ -19667,7 +19667,7 @@
- done
-
- IMAP_COM_ERR_LIBS="${COM_ERR_LIBS}"
--IMAP_LIBS="${LIB_SASL} ${LIBS} ${SQL_LIBS}"
-+IMAP_LIBS="${LIB_SASL} -lldap -llber ${LIBS} ${SQL_LIBS}"
-
-
-
-diff -r 2ebe14b7db9d imap/global.c
---- a/imap/global.c Mon Oct 27 18:47:12 2008 +0100
-+++ b/imap/global.c Mon Oct 27 18:48:18 2008 +0100
-@@ -52,6 +52,9 @@
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <sys/stat.h>
-+
-+#include <ldap.h>
-+#include <lber.h>
-
- #if HAVE_UNISTD_H
- # include <unistd.h>
-@@ -378,6 +381,18 @@
- char *domain = NULL;
- int len = strlen(user);
- char buf[81];
-+ const char *uri;
-+ const char *base;
-+ const char *binddn;
-+ const char *bindpw;
-+ struct timeval timeout;
-+ char filter[255];
-+ LDAP *handle;
-+ LDAPMessage *res;
-+ LDAPMessage *entry;
-+ struct berval** vals;
-+
-+ int rc;
-
- /* check for domain */
- if (config_virtdomains &&
-@@ -396,6 +411,49 @@
- }
-
- if (config_virtdomains) {
-+ if (config_virtdomains == IMAP_ENUM_VIRTDOMAINS_LDAP) {
-+ uri = config_getstring(IMAPOPT_LDAP_URI);
-+ base = config_getstring(IMAPOPT_LDAP_BASE);
-+ binddn = config_getstring(IMAPOPT_LDAP_BIND_DN);
-+ bindpw = config_getstring(IMAPOPT_LDAP_PASSWORD);
-+ timeout.tv_sec = config_getint(IMAPOPT_LDAP_TIME_LIMIT);
-+ timeout.tv_usec = 0;
-+ sprintf(filter, "(uid=%s)", user);
-+ rc = ldap_initialize(&handle, uri);
-+ if (rc != LDAP_SUCCESS) {
-+ syslog(LOG_ERR, "ldap_initialize failed (%s)", uri);
-+ } else {
-+ rc = ldap_simple_bind_s(handle, binddn, bindpw);
-+ if (rc != LDAP_SUCCESS) {
-+ syslog(LOG_ERR, "ldap_simple_bind() failed %d (%s)", rc, ldap_err2string(rc));
-+ } else {
-+ rc = ldap_search_st(handle, base, LDAP_SCOPE_SUBTREE, filter, NULL, 0, &timeout, &res);
-+ if (rc != LDAP_SUCCESS) {
-+ syslog(LOG_ERR, "ldap_search_st failed %d (%s)", rc, ldap_err2string(rc));
-+ } else {
-+ if ( (entry = ldap_first_entry(handle, res)) != NULL ) {
-+ // read mail attribute from entry
-+ if ( (vals = ldap_get_values_len(handle, entry, "mail")) ) {
-+ if (memchr(vals[0]->bv_val, '@', vals[0]->bv_len)) {
-+ static char buf[81]; /* same size as in auth_canonifyid */
-+ int len = ((sizeof(buf) - 1) > vals[0]->bv_len ? vals[0]->bv_len : sizeof(buf) - 1);
-+ strncpy( buf, vals[0]->bv_val, len);
-+ buf[len] = '\0'; /* make sure it's null-terminated */
-+ ldap_value_free_len( vals );
-+ ldap_msgfree( res );
-+ ldap_unbind_s(handle); /* also frees handle */
-+ syslog(LOG_DEBUG, "canonify: '%s'\n", buf);
-+ return auth_canonifyid( buf, 0) ;
-+ }
-+ ldap_value_free_len( vals );
-+ }
-+ }
-+ ldap_msgfree( res );
-+ }
-+ }
-+ ldap_unbind_s(handle); /* also frees handle */
-+ }
-+ }
- if (domain) {
- if (config_defdomain && !strcasecmp(config_defdomain, domain+1)) {
- *domain = '\0'; /* trim the default domain */
-@@ -408,7 +466,7 @@
- user = buf;
- }
- }
-- else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID) {
-+ else if (config_virtdomains != IMAP_ENUM_VIRTDOMAINS_USERID && config_virtdomains != IMAP_ENUM_VIRTDOMAINS_LDAP) {
- socklen_t salen;
- int error;
- struct sockaddr_storage localaddr;
-diff -r 2ebe14b7db9d lib/imapoptions
---- a/lib/imapoptions Mon Oct 27 18:47:12 2008 +0100
-+++ b/lib/imapoptions Mon Oct 27 18:48:18 2008 +0100
-@@ -1114,7 +1114,7 @@
- mailbox hierarchy. The default is to use the netnews separator
- character '.'. */
-
--{ "virtdomains", "off", ENUM("off", "userid", "on") }
-+{ "virtdomains", "off", ENUM("off", "userid", "ldap", "on") }
- /* Enable virtual domain support. If enabled, the user's domain will
- be determined by splitting a fully qualified userid at the last '@'
- or '%' symbol. If the userid is unqualified, and the virtdomains
diff --git a/net-mail/cyrus-imapd/files/kolab/2.3.14/timsieved_starttls-sendcaps.patch b/net-mail/cyrus-imapd/files/kolab/2.3.14/timsieved_starttls-sendcaps.patch
deleted file mode 100644
index 45088d86317e..000000000000
--- a/net-mail/cyrus-imapd/files/kolab/2.3.14/timsieved_starttls-sendcaps.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-This patch was downloaded from https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/timsieved/parser.c.diff?r1=1.44;r2=1.45
-(minus the CVS keywords)
-
-It should be reverse-applied with patch -p2 -R to work around the kontact
-behaviour described in kolab/issue2443 (kontact aborts sieve when imapd sends
-capabilities after starttls) and can be dropped as soon as kontact has a way
-to work with old and new cyrus imapd servers.
-
-diff -r 1688e25afb65 timsieved/parser.c
---- a/timsieved/parser.c Thu Apr 23 23:28:07 2009 +0200
-+++ b/timsieved/parser.c Thu Apr 23 23:28:54 2009 +0200
-@@ -908,8 +908,7 @@
-
- starttls_done = 1;
-
-- return capabilities(sieved_out, sieved_saslconn, starttls_done,
-- authenticated, sasl_ssf);
-+ return result;
- }
- #else
- static int cmd_starttls(struct protstream *sieved_out, struct protstream *sieved_in)