diff --git a/.dovecot.metadata b/.dovecot.metadata index b6cab37..7144f2c 100644 --- a/.dovecot.metadata +++ b/.dovecot.metadata @@ -1,2 +1,2 @@ -80491d872838d27a6f2775561ba9163150c23a1c SOURCES/dovecot-2.2-pigeonhole-0.4.2.tar.gz -aa6264444096abf139bb4f4c504c01f6107ce740 SOURCES/dovecot-2.2.10.tar.gz +09febe0f459ba26c526d8195b22179f39d48bc69 SOURCES/dovecot-2.2-pigeonhole-0.4.24.tar.gz +74c55736dfc92f586e2c75b7b4dd50816f63850b SOURCES/dovecot-2.2.36.tar.gz diff --git a/.gitignore b/.gitignore index 65fd1b2..91761d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/dovecot-2.2-pigeonhole-0.4.2.tar.gz -SOURCES/dovecot-2.2.10.tar.gz +SOURCES/dovecot-2.2-pigeonhole-0.4.24.tar.gz +SOURCES/dovecot-2.2.36.tar.gz diff --git a/SOURCES/dovecot-1.0.rc7-mkcert-paths.patch b/SOURCES/dovecot-1.0.rc7-mkcert-paths.patch index 91ab41f..e8354e5 100644 --- a/SOURCES/dovecot-1.0.rc7-mkcert-paths.patch +++ b/SOURCES/dovecot-1.0.rc7-mkcert-paths.patch @@ -1,8 +1,9 @@ ---- dovecot-1.0.rc7/doc/mkcert.sh.mkcert-paths 2006-10-04 11:34:46.000000000 +0200 -+++ dovecot-1.0.rc7/doc/mkcert.sh 2006-10-04 11:35:31.000000000 +0200 -@@ -4,8 +4,8 @@ - # Edit dovecot-openssl.cnf before running this. +diff -up dovecot-2.2.27/doc/mkcert.sh.mkcert-paths dovecot-2.2.27/doc/mkcert.sh +--- dovecot-2.2.27/doc/mkcert.sh.mkcert-paths 2016-12-05 10:26:07.913515286 +0100 ++++ dovecot-2.2.27/doc/mkcert.sh 2016-12-05 10:28:25.439634417 +0100 +@@ -5,8 +5,8 @@ + umask 077 OPENSSL=${OPENSSL-openssl} -SSLDIR=${SSLDIR-/etc/ssl} -OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf} diff --git a/SOURCES/dovecot-2.1.10-reload.patch b/SOURCES/dovecot-2.1.10-reload.patch deleted file mode 100644 index 7c149ef..0000000 --- a/SOURCES/dovecot-2.1.10-reload.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up dovecot-2.1.10/dovecot.service.in.reload dovecot-2.1.10/dovecot.service.in ---- dovecot-2.1.10/dovecot.service.in.reload 2012-11-02 10:25:41.416181031 +0100 -+++ dovecot-2.1.10/dovecot.service.in 2012-11-02 10:26:17.014467872 +0100 -@@ -5,6 +5,7 @@ After=local-fs.target network.target - [Service] - Type=simple - ExecStart=@sbindir@/dovecot -F -+ExecReload=/bin/kill -HUP $MAINPID - NonBlocking=yes - - [Install] diff --git a/SOURCES/dovecot-2.1.10-waitonline.patch b/SOURCES/dovecot-2.1.10-waitonline.patch index 6b5a111..ba4edeb 100644 --- a/SOURCES/dovecot-2.1.10-waitonline.patch +++ b/SOURCES/dovecot-2.1.10-waitonline.patch @@ -1,15 +1,16 @@ -diff -up dovecot-2.2.10/dovecot.service.in.waitonline dovecot-2.2.10/dovecot.service.in ---- dovecot-2.2.10/dovecot.service.in.waitonline 2016-06-09 17:07:30.965683169 +0200 -+++ dovecot-2.2.10/dovecot.service.in 2016-06-09 17:08:56.257389557 +0200 -@@ -1,9 +1,10 @@ - [Unit] +diff -up dovecot-2.2.36/dovecot.service.in.waitonline dovecot-2.2.36/dovecot.service.in +--- dovecot-2.2.36/dovecot.service.in.waitonline 2018-04-30 15:52:05.000000000 +0200 ++++ dovecot-2.2.36/dovecot.service.in 2018-06-12 15:34:22.459995078 +0200 +@@ -8,10 +8,11 @@ Description=Dovecot IMAP/POP3 email server + Documentation=man:dovecot(1) + Documentation=http://wiki2.dovecot.org/ -After=local-fs.target network.target +After=local-fs.target network.target network-online.target [Service] - Type=simple + Type=forking +ExecStartPre=/usr/libexec/dovecot/prestartscript - ExecStart=@sbindir@/dovecot -F - ExecReload=/bin/kill -HUP $MAINPID - PrivateTmp=true + ExecStart=@sbindir@/dovecot + PIDFile=@rundir@/master.pid + ExecReload=@bindir@/doveadm reload diff --git a/SOURCES/dovecot-2.2-e84555e6eb59.patch b/SOURCES/dovecot-2.2-e84555e6eb59.patch deleted file mode 100644 index 77d7809..0000000 --- a/SOURCES/dovecot-2.2-e84555e6eb59.patch +++ /dev/null @@ -1,56 +0,0 @@ - -# HG changeset patch -# User Timo Sirainen -# Date 1399020005 -10800 -# Node ID e84555e6eb5927cf128d47bd324c83fdedc2cfeb -# Parent 99f59d6fce05bc6957c1f540de45bbe0eeb47738 -auth: Fixed userdb extra fields handling in passdb failure. -userdb prefetch -flag wasn't correctly set, causing the prefetch userdb in -some situations incorrectly either to be called or not be called. - -This also fixes a crash when using userdb static and multiple passdbs. The -userdb_reply was set to NULL, which caused a crash later. - -diff -r 99f59d6fce05 -r e84555e6eb59 src/auth/auth-request.c ---- a/src/auth/auth-request.c Fri May 02 11:12:58 2014 +0300 -+++ b/src/auth/auth-request.c Fri May 02 11:40:05 2014 +0300 -@@ -625,21 +625,18 @@ - /* this passdb lookup succeeded, preserve its extra - fields */ - auth_fields_snapshot(request->extra_fields); -- request->snapshot_has_userdb_reply = -- request->userdb_reply != NULL; -+ request->snapshot_have_userdb_prefetch_set = -+ request->userdb_prefetch_set; - if (request->userdb_reply != NULL) - auth_fields_snapshot(request->userdb_reply); - } else { - /* this passdb lookup failed, remove any extra fields - it set */ - auth_fields_rollback(request->extra_fields); -- if (request->userdb_reply == NULL) -- ; -- else if (request->snapshot_has_userdb_reply) -+ if (request->userdb_reply != NULL) { - auth_fields_rollback(request->userdb_reply); -- else { -- request->userdb_reply = NULL; -- request->userdb_prefetch_set = FALSE; -+ request->userdb_prefetch_set = -+ request->snapshot_have_userdb_prefetch_set; - } - } - -diff -r 99f59d6fce05 -r e84555e6eb59 src/auth/auth-request.h ---- a/src/auth/auth-request.h Fri May 02 11:12:58 2014 +0300 -+++ b/src/auth/auth-request.h Fri May 02 11:40:05 2014 +0300 -@@ -124,7 +124,7 @@ - unsigned int prefer_plain_credentials:1; - unsigned int in_delayed_failure_queue:1; - unsigned int removed_from_handler:1; -- unsigned int snapshot_has_userdb_reply:1; -+ unsigned int snapshot_have_userdb_prefetch_set:1; - /* each passdb lookup can update the current success-status using the - result_* rules. the authentication succeeds only if this is TRUE - at the end. mechanisms that don't require passdb, but do a passdb - diff --git a/SOURCES/dovecot-2.2-gidcheck.patch b/SOURCES/dovecot-2.2-gidcheck.patch index eacbb26..78b4fc3 100644 --- a/SOURCES/dovecot-2.2-gidcheck.patch +++ b/SOURCES/dovecot-2.2-gidcheck.patch @@ -11,20 +11,19 @@ Patch by Michal Hlavinka / Red Hat src/auth/userdb-passwd.c | 4 ++++ 3 files changed, 10 insertions(+) -diff --git a/src/auth/auth-settings.c b/src/auth/auth-settings.c -index c942819..ea987cb 100644 ---- a/src/auth/auth-settings.c -+++ b/src/auth/auth-settings.c -@@ -264,6 +264,8 @@ static const struct setting_define auth_setting_defines[] = { +diff -up dovecot-2.2.36/src/auth/auth-settings.c.gidcheck dovecot-2.2.36/src/auth/auth-settings.c +--- dovecot-2.2.36/src/auth/auth-settings.c.gidcheck 2018-04-30 15:52:05.000000000 +0200 ++++ dovecot-2.2.36/src/auth/auth-settings.c 2018-09-17 12:17:13.132032699 +0200 +@@ -272,6 +272,8 @@ static const struct setting_define auth_ DEF_NOPREFIX(SET_BOOL, verbose_proctitle), DEF_NOPREFIX(SET_UINT, first_valid_uid), DEF_NOPREFIX(SET_UINT, last_valid_uid), + DEF_NOPREFIX(SET_UINT, first_valid_gid), + DEF_NOPREFIX(SET_UINT, last_valid_gid), - SETTING_DEFINE_LIST_END - }; -@@ -313,6 +315,8 @@ static const struct auth_settings auth_default_settings = { + DEF_NOPREFIX(SET_STR, ssl_client_ca_dir), + DEF_NOPREFIX(SET_STR, ssl_client_ca_file), +@@ -331,6 +333,8 @@ static const struct auth_settings auth_d .verbose_proctitle = FALSE, .first_valid_uid = 500, .last_valid_uid = 0, @@ -33,11 +32,10 @@ index c942819..ea987cb 100644 }; const struct setting_parser_info auth_setting_parser_info = { -diff --git a/src/auth/auth-settings.h b/src/auth/auth-settings.h -index 1313576..409653f 100644 ---- a/src/auth/auth-settings.h -+++ b/src/auth/auth-settings.h -@@ -79,6 +79,8 @@ struct auth_settings { +diff -up dovecot-2.2.36/src/auth/auth-settings.h.gidcheck dovecot-2.2.36/src/auth/auth-settings.h +--- dovecot-2.2.36/src/auth/auth-settings.h.gidcheck 2018-04-30 15:52:05.000000000 +0200 ++++ dovecot-2.2.36/src/auth/auth-settings.h 2018-09-17 12:13:30.540159133 +0200 +@@ -88,6 +88,8 @@ struct auth_settings { bool verbose_proctitle; unsigned int first_valid_uid; unsigned int last_valid_uid; @@ -46,11 +44,10 @@ index 1313576..409653f 100644 /* generated: */ char username_chars_map[256]; -diff --git a/src/auth/userdb-passwd.c b/src/auth/userdb-passwd.c -index f50bcba..a1f1871 100644 ---- a/src/auth/userdb-passwd.c -+++ b/src/auth/userdb-passwd.c -@@ -145,6 +145,10 @@ passwd_iterate_want_pw(struct passwd *pw, const struct auth_settings *set) +diff -up dovecot-2.2.36/src/auth/userdb-passwd.c.gidcheck dovecot-2.2.36/src/auth/userdb-passwd.c +--- dovecot-2.2.36/src/auth/userdb-passwd.c.gidcheck 2018-04-30 15:52:05.000000000 +0200 ++++ dovecot-2.2.36/src/auth/userdb-passwd.c 2018-09-17 12:13:30.540159133 +0200 +@@ -145,6 +145,10 @@ passwd_iterate_want_pw(struct passwd *pw return FALSE; if (pw->pw_uid > (uid_t)set->last_valid_uid && set->last_valid_uid != 0) return FALSE; diff --git a/SOURCES/dovecot-2.2.10-0e1a3c909a13.patch b/SOURCES/dovecot-2.2.10-0e1a3c909a13.patch deleted file mode 100644 index 78a1b69..0000000 --- a/SOURCES/dovecot-2.2.10-0e1a3c909a13.patch +++ /dev/null @@ -1,44 +0,0 @@ - -# HG changeset patch -# User Timo Sirainen -# Date 1412862083 -10800 -# Node ID 0e1a3c909a137edd2ad2c133d71eee7f565265bf -# Parent 90fbf199ebdaeb3a3a4863f0897cbeec17a19105 -lib-storage: Fixed header parsing when there were multiple same header names. -For example if a mail had: - -Name1: a -Name1: b -Name2: c - -If the Name1: was initially added to cache and Name2: not, but later on both -were attempted to be added to cache, the Name2: lookup would have been added -with "b" instead of "c" value. - -diff -r 90fbf199ebda -r 0e1a3c909a13 src/lib-storage/index/index-mail-headers.c ---- a/src/lib-storage/index/index-mail-headers.c Thu Oct 09 12:02:21 2014 +0300 -+++ b/src/lib-storage/index/index-mail-headers.c Thu Oct 09 16:41:23 2014 +0300 -@@ -71,6 +71,7 @@ - - if (match_idx < match_count) { - /* save index to first header line */ -+ i_assert(match_idx == lines[i].field_idx); - j = i + 1; - array_idx_set(&mail->header_match_lines, match_idx, &j); - match_idx++; -@@ -78,8 +79,12 @@ - - if (!mail_cache_field_can_add(_mail->transaction->cache_trans, - _mail->seq, lines[i].field_idx)) { -- /* header is already cached */ -- j = i + 1; -+ /* header is already cached. skip over all the -+ header lines. */ -+ for (j = i+1; j < count; j++) { -+ if (lines[j].field_idx != lines[i].field_idx) -+ break; -+ } - continue; - } - - diff --git a/SOURCES/dovecot-2.2.10-CVE_2014_3430.patch b/SOURCES/dovecot-2.2.10-CVE_2014_3430.patch deleted file mode 100644 index f9cf73f..0000000 --- a/SOURCES/dovecot-2.2.10-CVE_2014_3430.patch +++ /dev/null @@ -1,52 +0,0 @@ - -# HG changeset patch -# User Timo Sirainen -# Date 1399472781 -10800 -# Node ID 41622541a7a3a938895b5fe045bbc633a9b6c022 -# Parent 7a08a481c133be4b8cb8415feaed1321d560cee5 -*-login: SSL connections didn't get closed when the client got destroyed. - -diff -r 7a08a481c133 -r 41622541a7a3 src/login-common/client-common.c ---- a/src/login-common/client-common.c Wed May 07 17:12:19 2014 +0300 -+++ b/src/login-common/client-common.c Wed May 07 17:26:21 2014 +0300 -@@ -171,6 +171,8 @@ - last_client = client->prev; - DLLIST_REMOVE(&clients, client); - -+ if (!client->login_success && client->ssl_proxy != NULL) -+ ssl_proxy_destroy(client->ssl_proxy); - if (client->input != NULL) - i_stream_close(client->input); - if (client->output != NULL) -diff -r 7a08a481c133 -r 41622541a7a3 src/login-common/ssl-proxy-openssl.c ---- a/src/login-common/ssl-proxy-openssl.c Wed May 07 17:12:19 2014 +0300 -+++ b/src/login-common/ssl-proxy-openssl.c Wed May 07 17:26:21 2014 +0300 -@@ -116,7 +116,6 @@ - static void ssl_read(struct ssl_proxy *proxy); - static void ssl_write(struct ssl_proxy *proxy); - static void ssl_step(struct ssl_proxy *proxy); --static void ssl_proxy_destroy(struct ssl_proxy *proxy); - static void ssl_proxy_unref(struct ssl_proxy *proxy); - - static struct ssl_server_context * -@@ -807,7 +806,7 @@ - i_free(proxy); - } - --static void ssl_proxy_destroy(struct ssl_proxy *proxy) -+void ssl_proxy_destroy(struct ssl_proxy *proxy) - { - if (proxy->destroyed) - return; -diff -r 7a08a481c133 -r 41622541a7a3 src/login-common/ssl-proxy.h ---- a/src/login-common/ssl-proxy.h Wed May 07 17:12:19 2014 +0300 -+++ b/src/login-common/ssl-proxy.h Wed May 07 17:26:21 2014 +0300 -@@ -34,6 +34,7 @@ - const char *ssl_proxy_get_security_string(struct ssl_proxy *proxy); - const char *ssl_proxy_get_compression(struct ssl_proxy *proxy); - const char *ssl_proxy_get_cert_error(struct ssl_proxy *proxy); -+void ssl_proxy_destroy(struct ssl_proxy *proxy); - void ssl_proxy_free(struct ssl_proxy **proxy); - - /* Return number of active SSL proxies */ - diff --git a/SOURCES/dovecot-2.2.10-b8864211b88ed7521e9af514590639344af38910.patch b/SOURCES/dovecot-2.2.10-b8864211b88ed7521e9af514590639344af38910.patch deleted file mode 100644 index 62267c8..0000000 --- a/SOURCES/dovecot-2.2.10-b8864211b88ed7521e9af514590639344af38910.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b8864211b88ed7521e9af514590639344af38910 Mon Sep 17 00:00:00 2001 -From: Timo Sirainen -Date: Wed, 28 May 2014 18:17:52 +0300 -Subject: [PATCH] lib-index: Fixed somewhat random assert-crashes during - extension resizes. - ---- - src/lib-index/mail-index-transaction-export.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/lib-index/mail-index-transaction-export.c b/src/lib-index/mail-index-transaction-export.c -index a698674..2ad8565 100644 ---- a/src/lib-index/mail-index-transaction-export.c -+++ b/src/lib-index/mail-index-transaction-export.c -@@ -114,10 +114,10 @@ static void log_append_ext_intro(struct mail_index_export_context *ctx, - /* we're resizing the extension. use the resize struct. */ - intro = &resizes[ext_id]; - -- i_assert(intro->ext_id == idx || idx == (uint32_t)-1); -- if (idx != (uint32_t)-1) -+ if (idx != (uint32_t)-1) { -+ intro->ext_id = idx; - intro->name_size = 0; -- else { -+ } else { - intro->ext_id = (uint32_t)-1; - intro->name_size = strlen(rext->name); - } diff --git a/SOURCES/dovecot-2.2.10-ed6e472cab0e.patch b/SOURCES/dovecot-2.2.10-ed6e472cab0e.patch deleted file mode 100644 index 4473f17..0000000 --- a/SOURCES/dovecot-2.2.10-ed6e472cab0e.patch +++ /dev/null @@ -1,82 +0,0 @@ - -# HG changeset patch -# User Timo Sirainen -# Date 1399469814 -10800 -# Node ID ed6e472cab0e1b961bddcabdaf7c33c85503079a -# Parent 2e7ac48c6072d8490b64e145323664b5697b9701 -mdbox: Fixed race condition when creating a new mailbox and another process getting its GUID. - -diff -r 2e7ac48c6072 -r ed6e472cab0e src/lib-storage/index/dbox-common/dbox-storage.c ---- a/src/lib-storage/index/dbox-common/dbox-storage.c Wed May 07 13:02:29 2014 +0300 -+++ b/src/lib-storage/index/dbox-common/dbox-storage.c Wed May 07 16:36:54 2014 +0300 -@@ -255,9 +255,6 @@ - const struct mailbox_update *update, bool directory) - { - struct dbox_storage *storage = (struct dbox_storage *)box->storage; -- struct mail_index_sync_ctx *sync_ctx; -- struct mail_index_view *view; -- struct mail_index_transaction *trans; - const char *alt_path; - struct stat st; - int ret; -@@ -290,6 +287,17 @@ - } - /* dir is empty, ignore it */ - } -+ return dbox_mailbox_create_indexes(box, update); -+} -+ -+int dbox_mailbox_create_indexes(struct mailbox *box, -+ const struct mailbox_update *update) -+{ -+ struct dbox_storage *storage = (struct dbox_storage *)box->storage; -+ struct mail_index_sync_ctx *sync_ctx; -+ struct mail_index_view *view; -+ struct mail_index_transaction *trans; -+ int ret; - - /* use syncing as a lock */ - ret = mail_index_sync_begin(box->index, &sync_ctx, &view, &trans, 0); -diff -r 2e7ac48c6072 -r ed6e472cab0e src/lib-storage/index/dbox-common/dbox-storage.h ---- a/src/lib-storage/index/dbox-common/dbox-storage.h Wed May 07 13:02:29 2014 +0300 -+++ b/src/lib-storage/index/dbox-common/dbox-storage.h Wed May 07 16:36:54 2014 +0300 -@@ -73,6 +73,8 @@ - int dbox_mailbox_open(struct mailbox *box); - int dbox_mailbox_create(struct mailbox *box, - const struct mailbox_update *update, bool directory); -+int dbox_mailbox_create_indexes(struct mailbox *box, -+ const struct mailbox_update *update); - int dbox_verify_alt_storage(struct mailbox_list *list); - bool dbox_header_have_flag(struct mailbox *box, uint32_t ext_id, - unsigned int flags_offset, uint8_t flag); -diff -r 2e7ac48c6072 -r ed6e472cab0e src/lib-storage/index/dbox-multi/mdbox-storage.c ---- a/src/lib-storage/index/dbox-multi/mdbox-storage.c Wed May 07 13:02:29 2014 +0300 -+++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c Wed May 07 16:36:54 2014 +0300 -@@ -379,10 +379,15 @@ - - /* there's a race condition between mkdir and getting the mailbox GUID. - normally this is handled by mdbox syncing, but GUID can be looked up -- without syncing. when mbox->creating=TRUE, the errors are hidden -- and we'll simply finish the mailbox creation */ -+ without syncing. when we detect this situation we'll try to finish -+ creating the indexes first, which usually means just waiting for -+ the sync lock to get unlocked by the other process creating them. */ - idx_hdr = mail_index_get_header(mbox->box.view); -- mbox->creating = idx_hdr->uid_validity == 0 && idx_hdr->next_uid == 1; -+ if (idx_hdr->uid_validity == 0 && idx_hdr->next_uid == 1) { -+ if (dbox_mailbox_create_indexes(&mbox->box, NULL) < 0) -+ return -1; -+ } -+ - if (mdbox_read_header(mbox, &hdr, &need_resize) < 0) - memset(&hdr, 0, sizeof(hdr)); - -@@ -394,7 +399,6 @@ - } - if (ret == 0) - memcpy(guid_r, hdr.mailbox_guid, GUID_128_SIZE); -- mbox->creating = FALSE; - return ret; - } - - diff --git a/SOURCES/dovecot-2.2.10-valgrindlog.patch b/SOURCES/dovecot-2.2.10-valgrindlog.patch deleted file mode 100644 index 8a3d3f3..0000000 --- a/SOURCES/dovecot-2.2.10-valgrindlog.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up dovecot-2.2.10/run-test.sh.valgrindlog dovecot-2.2.10/run-test.sh ---- dovecot-2.2.10/run-test.sh.valgrindlog 2016-06-17 17:53:22.685823573 +0200 -+++ dovecot-2.2.10/run-test.sh 2016-06-17 17:54:06.303670444 +0200 -@@ -2,7 +2,7 @@ - - trap "rm -f test.out.$$" 0 1 2 3 15 - --if valgrind --version | grep '^valgrind-3.[012]'; then -+if valgrind -q --log-file-exactly=/dev/null /bin/true >/dev/null 2>&1; then - # RHEL 5.4 still has Valgrind v3.2 - valgrind -q --log-file-exactly=test.out.$$ $* - ret=$? diff --git a/SOURCES/dovecot-2.2.36-aclfix.patch b/SOURCES/dovecot-2.2.36-aclfix.patch new file mode 100644 index 0000000..1288b7b --- /dev/null +++ b/SOURCES/dovecot-2.2.36-aclfix.patch @@ -0,0 +1,13 @@ +diff -up dovecot-2.2.36/src/plugins/acl/acl-backend-vfile.c.aclfix dovecot-2.2.36/src/plugins/acl/acl-backend-vfile.c +--- dovecot-2.2.36/src/plugins/acl/acl-backend-vfile.c.aclfix 2018-09-18 15:00:08.778823903 +0200 ++++ dovecot-2.2.36/src/plugins/acl/acl-backend-vfile.c 2018-09-18 15:00:08.814823737 +0200 +@@ -161,8 +161,7 @@ acl_backend_vfile_object_init(struct acl + T_BEGIN { + if (*name == '\0' || + mailbox_list_is_valid_name(_backend->list, name, &error)) { +- vname = *name == '\0' ? "" : +- mailbox_list_get_vname(_backend->list, name); ++ vname = mailbox_list_get_vname(_backend->list, name); + + dir = acl_backend_vfile_get_local_dir(_backend, name, vname); + aclobj->local_path = dir == NULL ? NULL : diff --git a/SOURCES/dovecot-pigeonhole-2.2.10-b6c55ac6460d.patch b/SOURCES/dovecot-pigeonhole-2.2.10-b6c55ac6460d.patch deleted file mode 100644 index bfdd852..0000000 --- a/SOURCES/dovecot-pigeonhole-2.2.10-b6c55ac6460d.patch +++ /dev/null @@ -1,84 +0,0 @@ - -# HG changeset patch -# User Stephan Bosch -# Date 1419976864 -3600 -# Node ID b6c55ac6460d6e9d7c8784d7e0b9c0bd5ce160aa -# Parent c9698bc1751a70a808c286d43728e79b35c6ade7 -lib-sieve: Fixed crash in validation of the string parameter of the comparator tag. -It couldn't handle a missing parameter (which also means missing arguments of the test itself in most cases). -This is fixed by using the sieve_validate_tag_parameter() utility function. -Testsuite is also extended. - -diff -r c9698bc1751a -r b6c55ac6460d src/lib-sieve/sieve-comparators.c ---- a/src/lib-sieve/sieve-comparators.c Tue Dec 30 22:57:07 2014 +0100 -+++ b/src/lib-sieve/sieve-comparators.c Tue Dec 30 23:01:04 2014 +0100 -@@ -140,16 +140,11 @@ - /* Check syntax: - * ":comparator" - */ -- if ( (*arg)->type != SAAT_STRING ) { -- sieve_argument_validate_error(valdtr, *arg, -- ":comparator tag requires one string argument, but %s was found", -- sieve_ast_argument_name(*arg) ); -+ if ( !sieve_validate_tag_parameter -+ (valdtr, cmd, tag, *arg, NULL, 0, SAAT_STRING, FALSE) ) { - return FALSE; - } - -- if ( !sieve_validator_argument_activate(valdtr, cmd, *arg, FALSE) ) -- return FALSE; -- - /* FIXME: We can currently only handle string literal argument, so - * variables are not allowed. - */ -diff -r c9698bc1751a -r b6c55ac6460d tests/compile/errors.svtest ---- a/tests/compile/errors.svtest Tue Dec 30 22:57:07 2014 +0100 -+++ b/tests/compile/errors.svtest Tue Dec 30 23:01:04 2014 +0100 -@@ -243,6 +243,20 @@ - } - - /* -+ * COMPARATOR errors -+ */ -+ -+test "COMPARATOR errors (FIXME: count only)" { -+ if test_script_compile "errors/comparator.sieve" { -+ test_fail "compile should have failed."; -+ } -+ -+ if not test_error :count "eq" :comparator "i;ascii-numeric" "6" { -+ test_fail "wrong number of errors reported"; -+ } -+} -+ -+/* - * ADDRESS-PART errors - */ - -diff -r c9698bc1751a -r b6c55ac6460d tests/compile/errors/comparator.sieve ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/compile/errors/comparator.sieve Tue Dec 30 23:01:04 2014 +0100 -@@ -0,0 +1,21 @@ -+/* -+ * Address part errors -+ * -+ * Total errors: 5 (+1 = 6) -+ */ -+ -+# 1: No argument -+if address :comparator { } -+ -+# 2: Number argument -+if address :comparator 1 "from" "frop" { } -+ -+# 3: String list argument -+if address :comparator ["a", "b"] "from" "frop" { } -+ -+# 4: Unknown tag -+if address :comparator :frop "from" "frop" { } -+ -+# 5: Known tag -+if address :comparator :all "from" "frop" { } -+ - - diff --git a/SPECS/dovecot.spec b/SPECS/dovecot.spec index 7bc55b3..8cee84a 100644 --- a/SPECS/dovecot.spec +++ b/SPECS/dovecot.spec @@ -3,9 +3,9 @@ Summary: Secure imap and pop3 server Name: dovecot Epoch: 1 -Version: 2.2.10 +Version: 2.2.36 %global prever %{nil} -Release: 8%{?dist} +Release: 3%{?dist} #dovecot itself is MIT, a few sources are PD, pigeonhole is LGPLv2 License: MIT and LGPLv2 Group: System Environment/Daemons @@ -14,7 +14,7 @@ URL: http://www.dovecot.org/ Source: http://www.dovecot.org/releases/2.2/%{name}-%{version}%{?prever}.tar.gz Source1: dovecot.init Source2: dovecot.pam -%global pigeonholever 0.4.2 +%global pigeonholever 0.4.24 Source8: http://www.rename-it.nl/dovecot/2.2/dovecot-2.2-pigeonhole-%{pigeonholever}.tar.gz #wget http://hg.rename-it.nl/dovecot-2.2-pigeonhole/archive/%{pigeonholever}.tar.bz2 -O dovecot-2.2-pigeonhole-%{pigeonholever}.tar.bz2 #Source8: dovecot-2.2-pigeonhole-%{pigeonholever}.tar.bz2 @@ -29,8 +29,6 @@ Patch1: dovecot-2.0-defaultconfig.patch Patch2: dovecot-1.0.beta2-mkcert-permissions.patch Patch3: dovecot-1.0.rc7-mkcert-paths.patch - -Patch4: dovecot-2.1.10-reload.patch Patch5: dovecot-2.1-privatetmp.patch #wait for network @@ -39,25 +37,12 @@ Patch6: dovecot-2.1.10-waitonline.patch #workaround for chroot installation without /dev/random present, rhbz#1026790 Patch7: dovecot-2.2.9-nodevrand.patch -# dovecot < 2.2.13, rhbz#1096402,rhbz#1108004 -Patch8: dovecot-2.2.10-CVE_2014_3430.patch -Patch9: dovecot-pigeonhole-2.2.10-b6c55ac6460d.patch - -# from upstream, for dovecot < 2.2.13, rhbz#1234868 -Patch10: dovecot-2.2-e84555e6eb59.patch - -# rhbz#1249625 -Patch11: dovecot-2.2.10-valgrindlog.patch +# sent upstream, rhbz#1630380 +Patch9: dovecot-2.2.36-aclfix.patch -# 2x rhbz#1331478 -Patch12: dovecot-2.2.10-ed6e472cab0e.patch -Patch13: dovecot-2.2.10-b8864211b88ed7521e9af514590639344af38910.patch +# dovecot < 2.3, rhbz#1280436 +Patch10: dovecot-2.2-gidcheck.patch -# dovecot < 2.2.14, rhbz#1224496 -Patch14: dovecot-2.2.10-0e1a3c909a13.patch - -# dovecot < 2.2.25, rhbz#1280436 -Patch15: dovecot-2.2-gidcheck.patch Source15: prestartscript @@ -152,21 +137,13 @@ This package provides the development files for dovecot. %patch1 -p1 -b .default-settings %patch2 -p1 -b .mkcert-permissions %patch3 -p1 -b .mkcert-paths -%patch4 -p1 -b .reload -%patch5 -p1 -b .privatetmp %patch6 -p1 -b .waitonline %patch7 -p1 -b .nodevrand -%patch8 -p1 -b .CVE_2014_3430 -%patch10 -p1 -b .e84555e6eb59 -%patch11 -p1 -b .valgrindlog -%patch12 -p1 -b .ed6e472cab0e -%patch13 -p1 -b .b8864211b88ed7521e9af514590639344af38910 -%patch14 -p1 -b .0e1a3c909a13 -%patch15 -p1 -b .gidcheck +%patch9 -p1 -b .aclfix +%patch10 -p1 -b .gidcheck sed -i '/DEFAULT_INCLUDES *=/s|$| '"$(pkg-config --cflags libclucene-core)|" src/plugins/fts-lucene/Makefile.in #pigeonhole pushd dovecot-2*2-pigeonhole-%{pigeonholever} -%patch9 -p1 -b .2.2.10-b6c55ac6460d popd %build @@ -236,9 +213,9 @@ mv $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version} %{_builddir}/%{name}-%{version} pushd dovecot-2*2-pigeonhole-%{pigeonholever} make install DESTDIR=$RPM_BUILD_ROOT -mv $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version} $RPM_BUILD_ROOT/%{_docdir}/%{name}-2.2-pigeonhole-%{pigeonholever} +mv $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version} $RPM_BUILD_ROOT/%{_docdir}/%{name}-pigeonhole -install -m 644 AUTHORS ChangeLog COPYING COPYING.LGPL INSTALL NEWS README $RPM_BUILD_ROOT/%{_docdir}/%{name}-2.2-pigeonhole-%{pigeonholever} +install -m 644 AUTHORS ChangeLog COPYING COPYING.LGPL INSTALL NEWS README $RPM_BUILD_ROOT/%{_docdir}/%{name}-pigeonhole popd @@ -275,9 +252,9 @@ mkdir -p $RPM_BUILD_ROOT/var/run/dovecot/{login,empty} mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d install -p -m 644 docinstall/example-config/dovecot.conf $RPM_BUILD_ROOT%{_sysconfdir}/dovecot install -p -m 644 docinstall/example-config/conf.d/*.conf $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d -install -p -m 644 $RPM_BUILD_ROOT/%{_docdir}/%{name}-2.2-pigeonhole-%{pigeonholever}/example-config/conf.d/*.conf $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d +install -p -m 644 $RPM_BUILD_ROOT/%{_docdir}/%{name}-pigeonhole/example-config/conf.d/*.conf $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d install -p -m 644 docinstall/example-config/conf.d/*.conf.ext $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d -install -p -m 644 $RPM_BUILD_ROOT/%{_docdir}/%{name}-2.2-pigeonhole-%{pigeonholever}/example-config/conf.d/*.conf.ext $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d ||: +install -p -m 644 $RPM_BUILD_ROOT/%{_docdir}/%{name}-pigeonhole/example-config/conf.d/*.conf.ext $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/conf.d ||: install -p -m 644 doc/dovecot-openssl.cnf $RPM_BUILD_ROOT%{ssldir}/dovecot-openssl.cnf install -p -m755 doc/mkcert.sh $RPM_BUILD_ROOT%{_libexecdir}/%{name}/mkcert.sh @@ -448,33 +425,49 @@ make check %dir %{_libdir}/dovecot %dir %{_libdir}/dovecot/auth %dir %{_libdir}/dovecot/dict +%dir %{_libdir}/dovecot/stats %{_libdir}/dovecot/doveadm +%exclude %{_libdir}/dovecot/doveadm/*sieve* %{_libdir}/dovecot/*.so.* -#these (*.so files) are plugins, not a devel files +#these (*.so files) are plugins, not devel files %{_libdir}/dovecot/*_plugin.so %exclude %{_libdir}/dovecot/*_sieve_plugin.so +%{_libdir}/dovecot/auth/lib20_auth_var_expand_crypt.so %{_libdir}/dovecot/auth/libauthdb_imap.so %{_libdir}/dovecot/auth/libauthdb_ldap.so %{_libdir}/dovecot/auth/libmech_gssapi.so %{_libdir}/dovecot/auth/libdriver_sqlite.so %{_libdir}/dovecot/dict/libdriver_sqlite.so +%{_libdir}/dovecot/dict/libdict_ldap.so +%{_libdir}/dovecot/stats/libstats_auth.so +%{_libdir}/dovecot/stats/libstats_mail.so %{_libdir}/dovecot/libdriver_sqlite.so %{_libdir}/dovecot/libssl_iostream_openssl.so +%{_libdir}/dovecot/libfs_compress.so +%{_libdir}/dovecot/libfs_crypt.so +%{_libdir}/dovecot/libfs_mail_crypt.so +%{_libdir}/dovecot/libdcrypt_openssl.so +%{_libdir}/dovecot/lib20_var_expand_crypt.so + %dir %{_libdir}/dovecot/settings %{_libexecdir}/%{name} %exclude %{_libexecdir}/%{name}/managesieve* -%ghost /var/run/dovecot +%attr(0755,root,dovecot) %ghost /var/run/dovecot +%attr(0750,root,dovenull) %ghost /var/run/dovecot/login +%attr(0755,root,root) %ghost /var/run/dovecot/empty %attr(0750,dovecot,dovecot) /var/lib/dovecot -%{_mandir}/man1/deliver.1.gz -%{_mandir}/man1/doveadm*.1.gz -%{_mandir}/man1/doveconf.1.gz -%{_mandir}/man1/dovecot*.1.gz -%{_mandir}/man1/dsync.1.gz -%{_mandir}/man5/dovecot.conf.5.gz -%{_mandir}/man7/doveadm-search-query.7.gz +%{_datadir}/%{name} + +%{_mandir}/man1/deliver.1* +%{_mandir}/man1/doveadm*.1* +%{_mandir}/man1/doveconf.1* +%{_mandir}/man1/dovecot*.1* +%{_mandir}/man1/dsync.1* +%{_mandir}/man5/dovecot.conf.5* +%{_mandir}/man7/doveadm-search-query.7* %files pigeonhole %defattr(-,root,root,-) @@ -486,21 +479,23 @@ make check %config(noreplace) %{_sysconfdir}/dovecot/conf.d/90-sieve.conf %config(noreplace) %{_sysconfdir}/dovecot/conf.d/90-sieve-extprograms.conf -%{_docdir}/%{name}-2.2-pigeonhole-%{pigeonholever} +%{_docdir}/%{name}-pigeonhole %{_libexecdir}/%{name}/managesieve %{_libexecdir}/%{name}/managesieve-login +%{_libdir}/dovecot/doveadm/*sieve* %{_libdir}/dovecot/*_sieve_plugin.so %{_libdir}/dovecot/settings/libmanagesieve_*.so +%{_libdir}/dovecot/settings/libpigeonhole_*.so %{_libdir}/dovecot/sieve/ -%{_mandir}/man1/sieve-dump.1.gz -%{_mandir}/man1/sieve-filter.1.gz -%{_mandir}/man1/sieve-test.1.gz -%{_mandir}/man1/sievec.1.gz -%{_mandir}/man1/sieved.1.gz -%{_mandir}/man7/pigeonhole.7.gz +%{_mandir}/man1/sieve-dump.1* +%{_mandir}/man1/sieve-filter.1* +%{_mandir}/man1/sieve-test.1* +%{_mandir}/man1/sievec.1* +%{_mandir}/man1/sieved.1* +%{_mandir}/man7/pigeonhole.7* %files mysql %defattr(-,root,root,-) @@ -522,6 +517,18 @@ make check %changelog +* Wed Sep 19 2018 Michal Hlavinka - 1:2.2.36-3 +- fix global ACL directory configuration search path (#1630380) +- update first/last_valid_gid range patch (#1630409) + +* Mon Jul 30 2018 Michal Hlavinka - 1:2.2.36-2 +- fix defaut permissions of gost run files + +* Tue Jun 12 2018 Michal Hlavinka - 1:2.2.36-1 +- dovecot updated to 2.2.36, pigeonhole to 0.4.24 +- fixed dsync not replicating sieve scripts (#1419426) +- fix plugins incorrectly reporting epipe errors(#1489943) + * Tue Mar 21 2017 Michal Hlavinka - 1:2.2.10-8 - do not iterate over users outside of first/last_valid_gid range (#1280436)