diff --git a/gnu/local.mk b/gnu/local.mk index 98dffff648..0f3b4bd7a8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -539,7 +539,6 @@ dist_patch_DATA = \ %D%/packages/patches/diffutils-gets-undeclared.patch \ %D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-segfault-fix.patch \ - %D%/packages/patches/dovecot-fix-failing-test.patch \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 1a6c505efd..255837198b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1086,17 +1086,15 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.29") + (version "2.2.29.1") (source (origin (method url-fetch) (uri (string-append "https://www.dovecot.org/releases/" (version-major+minor version) "/" name "-" version ".tar.gz")) - (patches (search-patches "dovecot-fix-failing-test.patch")) - (sha256 - (base32 - "19irf7b5mjqq68mrpdd38gxc0zp2nqib942kjp3aif3f2acylffr")))) + (sha256 (base32 + "127kn3fgmahw9fvgz2w3zaghq98ip4j8640wqa3rw7mrgvxrzync")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/patches/dovecot-fix-failing-test.patch b/gnu/packages/patches/dovecot-fix-failing-test.patch deleted file mode 100644 index 343bab03f9..0000000000 --- a/gnu/packages/patches/dovecot-fix-failing-test.patch +++ /dev/null @@ -1,118 +0,0 @@ -This patch fixes a test failure in dovecot 2.2.29, like this [0]: - ------- -Making check in lib-imap-client -make[2]: Entering directory -`/builddir/build/BUILD/dovecot-2.2.29/src/lib-imap-client' -for bin in test-imapc-client; do \ - if ! ./$bin; then exit 1; fi; \ - done -Warning: imapc(127.0.0.1:0): connect(127.0.0.1, 0) failed: Connection -refused - reconnecting (delay 10 ms) -Error: imapc(127.0.0.1:0): connect(127.0.0.1, 0) failed: Connection -refused - disconnecting -test: random seed #1 was 1492054294 -imapc connect failed ................................................. : ok -Warning: imapc(127.0.0.1:42704): connect(127.0.0.1, 42704) timed out -after 0 seconds - reconnecting (delay 0 ms) -Error: imapc(127.0.0.1:42704): connect(127.0.0.1, 42704) timed out after -0 seconds - disconnecting -imapc banner hangs ................................................... : ok -Warning: imapc(127.0.0.1:36762): Authentication timed out after 0 -seconds - reconnecting (delay 0 ms) -Error: imapc(127.0.0.1:36762): Authentication failed: Disconnected from -server -imapc login hangs .................................................... : ok -test-imapc-client.c:358: Assert failed: test_imapc_cmd_last_reply_pop() -== IMAPC_COMMAND_STATE_OK -imapc reconnect ...................................................... : -FAILED -imapc reconnect resend commands ...................................... : ok -imapc reconnect resend commands failed ............................... : ok -imapc reconnect mailbox .............................................. : ok -1 / 7 tests failed ------- - -Patch copied from upstream source repository: - -https://github.com/dovecot/core/commit/3a1c64363a64cdfe9153eb6292d8923f38955d82 - -[0] -https://dovecot.org/pipermail/dovecot/2017-April/107751.html - -From 3a1c64363a64cdfe9153eb6292d8923f38955d82 Mon Sep 17 00:00:00 2001 -From: Timo Sirainen -Date: Mon, 10 Apr 2017 17:07:28 +0300 -Subject: [PATCH] lib-imap-client: Fix reconnection - -There was already code for reconnection. We just shouldn't have gone very -far in imapc_connection_connect() if we were still waiting for reconnection -delay to pass. ---- - src/lib-imap-client/imapc-connection.c | 25 +++++++++---------------- - 1 file changed, 9 insertions(+), 16 deletions(-) - -diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c -index 95067e6..6eaf1ab 100644 ---- a/src/lib-imap-client/imapc-connection.c -+++ b/src/lib-imap-client/imapc-connection.c -@@ -130,6 +130,7 @@ struct imapc_connection { - struct timeout *to_throttle, *to_throttle_shrink; - - unsigned int reconnecting:1; -+ unsigned int reconnect_waiting:1; - unsigned int reconnect_ok:1; - unsigned int idling:1; - unsigned int idle_stopping:1; -@@ -504,6 +505,7 @@ static bool imapc_connection_can_reconnect(struct imapc_connection *conn) - static void imapc_connection_reconnect(struct imapc_connection *conn) - { - conn->reconnect_ok = FALSE; -+ conn->reconnect_waiting = FALSE; - - if (conn->selected_box != NULL) - imapc_client_mailbox_reconnect(conn->selected_box); -@@ -536,6 +538,7 @@ imapc_connection_try_reconnect(struct imapc_connection *conn, - imapc_connection_disconnect_full(conn, TRUE); - conn->to = timeout_add(delay_msecs, imapc_connection_reconnect, conn); - conn->reconnect_count++; -+ conn->reconnect_waiting = TRUE; - } - } - } -@@ -1785,6 +1788,12 @@ void imapc_connection_connect(struct imapc_connection *conn) - - if (conn->fd != -1 || conn->dns_lookup != NULL) - return; -+ if (conn->reconnect_waiting) { -+ /* wait for the reconnection delay to finish before -+ doing anything. */ -+ return; -+ } -+ - conn->reconnecting = FALSE; - /* if we get disconnected before we've finished all the pending - commands, don't reconnect */ -@@ -1792,22 +1801,6 @@ void imapc_connection_connect(struct imapc_connection *conn) - array_count(&conn->cmd_send_queue); - - imapc_connection_input_reset(conn); -- -- int msecs_since_last_connect = -- timeval_diff_msecs(&ioloop_timeval, &conn->last_connect); -- if (!conn->reconnect_ok && -- msecs_since_last_connect < (int)conn->client->set.connect_retry_interval_msecs) { -- if (conn->to != NULL) -- timeout_remove(&conn->to); -- conn->reconnecting = TRUE; -- imapc_connection_set_disconnected(conn); -- /* don't wait longer than necessary */ -- unsigned int delay_msecs = -- conn->client->set.connect_retry_interval_msecs - -- msecs_since_last_connect; -- conn->to = timeout_add(delay_msecs, imapc_connection_reconnect, conn); -- return; -- } - conn->last_connect = ioloop_timeval; - - if (conn->client->set.debug) {