maintenance update to Dovecot 1.1.12 plus a couple of post-release

patches from the upstream repo - from Brad (maintainer).
This commit is contained in:
sthen 2009-03-17 09:09:10 +00:00
parent 6cae88a649
commit e2d1eb49cb
10 changed files with 58 additions and 136 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.115 2009/02/14 10:27:58 sthen Exp $
# $OpenBSD: Makefile,v 1.116 2009/03/17 09:09:10 sthen Exp $
SHARED_ONLY= Yes
@ -6,12 +6,12 @@ COMMENT-server= compact IMAP/POP3 server
COMMENT-sieve= Sieve mail filtering for Dovecot
V_MAJOR= 1.1
V_DOVECOT= 1.1.11
V_DOVECOT= 1.1.12
V_SIEVE= 1.1.6
PKGNAME= dovecot-${V_DOVECOT}
PKGNAME-server= dovecot-${V_DOVECOT}p1
FULLPKGNAME-sieve= dovecot-sieve-${V_SIEVE}p2
PKGNAME-server= dovecot-${V_DOVECOT}
FULLPKGNAME-sieve= dovecot-sieve-${V_SIEVE}p3
DISTNAME= dovecot-${V_DOVECOT}
CATEGORIES= mail

View File

@ -1,10 +1,10 @@
MD5 (dovecot-1.1.11.tar.gz) = yXPrQaynn7FmMKFvDYT3ZQ==
MD5 (dovecot-1.1.12.tar.gz) = kgXt9wrGMUNDzE0Yk5L/rw==
MD5 (dovecot-sieve-1.1.6.tar.gz) = es89mJdKUVuGit29tzBU6w==
RMD160 (dovecot-1.1.11.tar.gz) = dNIzx5ld+JqRfUny8zLv4P4rHdM=
RMD160 (dovecot-1.1.12.tar.gz) = SRorz8ADGuVoWBJ4xiRsGY2kF08=
RMD160 (dovecot-sieve-1.1.6.tar.gz) = 7W913B/9sOxR7PN4aqcQkoUSifU=
SHA1 (dovecot-1.1.11.tar.gz) = zH+0TTp1DGVtbCEWtWm1WHMZ1AU=
SHA1 (dovecot-1.1.12.tar.gz) = 7ETzEbF3mV5tqMoqJ7o4YKkl0vU=
SHA1 (dovecot-sieve-1.1.6.tar.gz) = wQnuirHH/+znlA+y43EEuveERA4=
SHA256 (dovecot-1.1.11.tar.gz) = 03+iUSGVWYQRUeEroABWXaa5mfSIJ9tr7uYShl96WjQ=
SHA256 (dovecot-1.1.12.tar.gz) = STSNKcd2ZVg8Ol6cDtvvozsP4d0ea7jDmFLNZJ01QRo=
SHA256 (dovecot-sieve-1.1.6.tar.gz) = ohMKjn1zK7NBqWqWoktN22aDThFlc6EMF+aDRP5xKzY=
SIZE (dovecot-1.1.11.tar.gz) = 2362415
SIZE (dovecot-1.1.12.tar.gz) = 2368733
SIZE (dovecot-sieve-1.1.6.tar.gz) = 470071

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-configure_in,v 1.16 2009/01/26 14:47:02 sthen Exp $
--- configure.in.orig Thu Jan 15 18:02:47 2009
+++ configure.in Fri Jan 16 14:55:25 2009
$OpenBSD: patch-configure_in,v 1.17 2009/03/17 09:09:10 sthen Exp $
--- configure.in.orig Thu Mar 12 17:47:10 2009
+++ configure.in Thu Mar 12 18:50:02 2009
@@ -13,6 +13,7 @@ AC_PROG_CXX # lucene plugin needs this
AC_HEADER_STDC
AC_C_INLINE
@ -9,7 +9,7 @@ $OpenBSD: patch-configure_in,v 1.16 2009/01/26 14:47:02 sthen Exp $
AM_ICONV
AC_CHECK_HEADERS(strings.h stdint.h unistd.h dirent.h malloc.h inttypes.h \
@@ -1797,74 +1798,15 @@ fi
@@ -1809,74 +1810,15 @@ fi
have_gssapi=no
if test $want_gssapi != no; then

View File

@ -1,38 +0,0 @@
$OpenBSD: patch-src_lib-index_mail-index-view_c,v 1.1 2009/02/08 14:54:21 sthen Exp $
--- src/lib-index/mail-index-view.c.orig Thu Jan 15 15:09:54 2009
+++ src/lib-index/mail-index-view.c Sat Feb 7 12:44:21 2009
@@ -304,26 +304,27 @@ static void view_lookup_first(struct mail_index_view *
{
#define LOW_UPDATE(x) \
STMT_START { if ((x) > low_uid) low_uid = x; } STMT_END
+ const struct mail_index_header *hdr = &view->map->hdr;
const struct mail_index_record *rec;
- uint32_t seq, low_uid = 1;
+ uint32_t seq, seq2, low_uid = 1;
*seq_r = 0;
if ((flags_mask & MAIL_SEEN) != 0 && (flags & MAIL_SEEN) == 0)
- LOW_UPDATE(view->map->hdr.first_unseen_uid_lowwater);
+ LOW_UPDATE(hdr->first_unseen_uid_lowwater);
if ((flags_mask & MAIL_DELETED) != 0 && (flags & MAIL_DELETED) != 0)
- LOW_UPDATE(view->map->hdr.first_deleted_uid_lowwater);
+ LOW_UPDATE(hdr->first_deleted_uid_lowwater);
if (low_uid == 1)
seq = 1;
else {
- if (!mail_index_lookup_seq(view, low_uid, &seq))
+ if (!mail_index_lookup_seq_range(view, low_uid, hdr->next_uid,
+ &seq, &seq2))
return;
}
- i_assert(view->map->hdr.messages_count <=
- view->map->rec_map->records_count);
- for (; seq <= view->map->hdr.messages_count; seq++) {
+ i_assert(hdr->messages_count <= view->map->rec_map->records_count);
+ for (; seq <= hdr->messages_count; seq++) {
rec = MAIL_INDEX_MAP_IDX(view->map, seq-1);
if ((rec->flags & flags_mask) == (uint8_t)flags) {
*seq_r = seq;

View File

@ -1,22 +0,0 @@
$OpenBSD: patch-src_lib-storage_index_maildir_maildir-mail_c,v 1.1 2009/02/14 10:27:58 sthen Exp $
--- src/lib-storage/index/maildir/maildir-mail.c.orig Tue Jan 6 09:33:51 2009
+++ src/lib-storage/index/maildir/maildir-mail.c Fri Feb 13 17:48:55 2009
@@ -485,8 +485,16 @@ static void maildir_mail_set_cache_corrupted(struct ma
_mail->uid, &flags);
if (maildir_filename_get_size(fname, MAILDIR_EXTRA_VIRTUAL_SIZE,
&size)) {
- i_error("Maildir filename has wrong W value: %s/%s",
- mbox->path, fname);
+ const char *subdir =
+ (flags & MAILDIR_UIDLIST_REC_FLAG_NEW_DIR) != 0 ?
+ "new" : "cur";
+ mail_storage_set_critical(_mail->box->storage,
+ "Maildir filename has wrong W= value, "
+ "can't fix it automatically: %s/%s/%s",
+ mbox->path, subdir, fname);
+ /* don't bother setting cache corrupted since it
+ doesn't fix anything. */
+ return;
} else if (maildir_uidlist_lookup_ext(mbox->uidlist, _mail->uid,
MAILDIR_UIDLIST_REC_EXT_VSIZE) != NULL) {
maildir_uidlist_set_ext(mbox->uidlist, _mail->uid,

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-src_lib-storage_index_maildir_maildir-sync-index_c,v 1.1 2009/02/08 14:54:21 sthen Exp $
--- src/lib-storage/index/maildir/maildir-sync-index.c.orig Thu Feb 5 16:19:12 2009
+++ src/lib-storage/index/maildir/maildir-sync-index.c Thu Feb 5 16:19:48 2009
@@ -336,7 +336,7 @@ maildir_sync_mail_keywords(struct maildir_index_sync_c
ones. we can get these lists easily by removing common elements
from old and new keywords. */
new_indexes = array_get_modifiable(&ctx->keywords, &new_count);
- for (i = 0; i < old_count && j < new_count; ) {
+ for (i = j = 0; i < old_count && j < new_count; ) {
diff = (int)old_indexes[i] - (int)new_indexes[j];
if (diff == 0) {
array_delete(&ctx->keywords, j, 1);

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-src_lib-storage_index_mbox_mbox-lock_c,v 1.1 2009/03/17 09:09:10 sthen Exp $
--- src/lib-storage/index/mbox/mbox-lock.c.orig Mon Mar 16 14:38:42 2009
+++ src/lib-storage/index/mbox/mbox-lock.c Mon Mar 16 14:40:41 2009
@@ -325,20 +325,9 @@ static int mbox_dotlock_privileged_op(struct mbox_mail
mbox->mbox_used_privileges = FALSE;
break;
case MBOX_DOTLOCK_OP_TOUCH:
- if (!file_dotlock_is_locked(mbox->mbox_dotlock)) {
- if (file_dotlock_delete(&mbox->mbox_dotlock) < 0) {
- mbox_set_syscall_error(mbox,
- "file_dotlock_delete()");
- }
- mbox->mbox_used_privileges = TRUE;
- ret = -1;
- } else {
- ret = file_dotlock_touch(mbox->mbox_dotlock);
- if (ret < 0) {
- mbox_set_syscall_error(mbox,
- "file_dotlock_touch()");
- }
- }
+ ret = file_dotlock_touch(mbox->mbox_dotlock);
+ if (ret < 0)
+ mbox_set_syscall_error(mbox, "file_dotlock_touch()");
break;
}

View File

@ -1,37 +0,0 @@
$OpenBSD: patch-src_lib_istream-tee_c,v 1.1 2009/02/08 14:54:21 sthen Exp $
--- src/lib/istream-tee.c.orig Thu Feb 5 16:21:43 2009
+++ src/lib/istream-tee.c Thu Feb 5 16:24:20 2009
@@ -112,12 +112,20 @@ static ssize_t i_stream_tee_read(struct istream_privat
uoff_t last_high_offset;
ssize_t ret;
+ if (stream->buffer == NULL) {
+ /* initial read */
+ tee_streams_update_buffer(tstream->tee);
+ }
data = i_stream_get_data(input, &size);
+ /* last_high_offset contains how far we have read this child tee stream
+ so far. input->v_offset + size contains how much is available in
+ the parent stream without having to read more. */
last_high_offset = stream->istream.v_offset +
- (tstream->istream.pos - tstream->istream.skip);
+ (stream->pos - stream->skip);
i_assert(last_high_offset <= input->v_offset + size);
if (last_high_offset == input->v_offset + size) {
+ /* we've read everything, need to read more */
tee_streams_skip(tstream->tee);
ret = i_stream_read(input);
if (ret <= 0) {
@@ -133,9 +141,9 @@ static ssize_t i_stream_tee_read(struct istream_privat
}
tee_streams_update_buffer(tstream->tee);
data = i_stream_get_data(input, &size);
- } else if (stream->buffer == NULL) {
- tee_streams_update_buffer(tstream->tee);
} else {
+ /* there's still some data available from parent */
+ i_assert(stream->pos < size);
stream->buffer = data;
}

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-src_lib_istream_c,v 1.1 2009/02/08 14:54:21 sthen Exp $
--- src/lib/istream.c.orig Thu Feb 5 16:24:58 2009
+++ src/lib/istream.c Thu Feb 5 16:25:44 2009
@@ -92,6 +92,10 @@ ssize_t i_stream_read(struct istream *stream)
case 0:
i_assert(!stream->blocking);
break;
+ default:
+ i_assert(ret > 0);
+ i_assert((size_t)ret <= _stream->pos - _stream->skip);
+ break;
}
return ret;
}

View File

@ -0,0 +1,18 @@
$OpenBSD: patch-src_master_master-settings_c,v 1.8 2009/03/17 09:09:10 sthen Exp $
--- src/master/master-settings.c.orig Mon Mar 16 14:41:23 2009
+++ src/master/master-settings.c Mon Mar 16 14:43:01 2009
@@ -908,10 +908,12 @@ static bool login_want_core_dumps(struct settings *set
{
const char *p;
- p = strstr(set->server->pop3->login_executable, " -D");
+ p = set->server->pop3 == NULL ? NULL :
+ strstr(set->server->pop3->login_executable, " -D");
if (p != NULL && p[3] == '\0')
return TRUE;
- p = strstr(set->server->imap->login_executable, " -D");
+ p = set->server->imap == NULL ? NULL :
+ strstr(set->server->imap->login_executable, " -D");
if (p != NULL && p[3] == '\0')
return TRUE;
return FALSE;