[arch-commits] Commit in dovecot/trunk (5 files)

Thore Bödecker foxxx0 at archlinux.org
Wed Mar 28 07:39:02 UTC 2018


    Date: Wednesday, March 28, 2018 @ 07:39:01
  Author: foxxx0
Revision: 313065

upgpkg: dovecot 2.3.1-1

update to 2.3.1

Added:
  dovecot/trunk/dovecot.ld.so.conf
Modified:
  dovecot/trunk/PKGBUILD
  dovecot/trunk/dovecot-0003-dsync-Revert-to-tmp-if-home-does-not-exist.patch
Deleted:
  dovecot/trunk/dovecot-0001-fix-segfault-imap-zlib.patch
  dovecot/trunk/dovecot-0002-fix-segfault-quota-exceeded.patch

---------------------------------------------------------------+
 PKGBUILD                                                      |   21 -
 dovecot-0001-fix-segfault-imap-zlib.patch                     |   28 -
 dovecot-0002-fix-segfault-quota-exceeded.patch                |  162 ----------
 dovecot-0003-dsync-Revert-to-tmp-if-home-does-not-exist.patch |   77 ++--
 dovecot.ld.so.conf                                            |    1 
 5 files changed, 48 insertions(+), 241 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-03-28 04:33:41 UTC (rev 313064)
+++ PKGBUILD	2018-03-28 07:39:01 UTC (rev 313065)
@@ -10,8 +10,8 @@
 # --->>> remember to rebuild/bump pigeonhole in one step <<<---
 
 pkgname=dovecot
-pkgver=2.3.0.1
-pkgrel=4
+pkgver=2.3.1
+pkgrel=1
 
 pkgdesc="An IMAP and POP3 server written with security primarily in mind"
 url="http://dovecot.org/"
@@ -30,18 +30,16 @@
 source=("https://dovecot.org/releases/2.3/${pkgname}-${pkgver}.tar.gz"{,.sig}
         'dovecot.sysusersd'
         'dovecot.tmpfilesd'
-        # to be checked if upcoming 2.3.1 release has merged them:
-        'dovecot-0001-fix-segfault-imap-zlib.patch'
-        'dovecot-0002-fix-segfault-quota-exceeded.patch'
+        'dovecot.ld.so.conf'
+        # needs "proper" fix according to upstream. might be fixed in 2.3.2
         'dovecot-0003-dsync-Revert-to-tmp-if-home-does-not-exist.patch')
 
-sha256sums=('ab772b3e214683aba347203c9391295552255c4d69afb324c7b8c8fc5ad6f153'
+sha256sums=('0883821b97fd02a084a84b9469a681f7e6edc56541d854b5419d98891c51fb93'
             'SKIP'
             'c5e3a8ffe23e5deb4f7893d9877d972347c2ee45c4ebf713de85c537e47cfcaf'
             'bb7620be7fc0217d77fcac940441c2abbd9efc6ef660153288d09ba412e27e06'
-            'b8a7b6e324b8b03c02d1e43b700fdb21ca791699bbb046dcc0042f8e6489b2ed'
-            'e6ef27938a384a54b28c0ce57626dcd738f659465293f2cbb71712cbd5592136'
-            '4946a6cf44d707d2d9c86f4f39c081cbd0373bbfeee7e26fcc9c3033abda7aef')
+            'a457a1691cfa82495fc0503bfa4b61e54b149e63400fe0f568dff2c24a3f7858'
+            '95c33d502936cd108a50001e1dbb0b6f885f8b9bfe2e53eaecc6c5ecf8a973d2')
 validpgpkeys=(
   'E643F0BDFDCD04D9FFCB6279C948525140558AC9' # Timo Sirainen <tss at iki.fi>
   '2BE74AAB3EE754DFB9C80D3318A348AEED409DA1' # Dovecot Community Edition
@@ -54,7 +52,7 @@
   for filename in "${source[@]}"; do
     if [[ "$filename" =~ \.patch$ ]]; then
       msg2 "Applying patch ${filename##*/}"
-      patch -p1 -N -i "$srcdir/${filename##*/}"
+      patch -p1 -N -l -i "$srcdir/${filename##*/}"
     fi
   done
 
@@ -114,4 +112,7 @@
 
   # install mkcert helper script
   install -m 755  doc/mkcert.sh "${pkgdir}/usr/lib/dovecot/mkcert.sh"
+
+  # add dovecot libdir
+  install -Dm644 "${srcdir}/dovecot.ld.so.conf" "${pkgdir}/etc/ld.so.conf.d/dovecot.conf"
 }

Deleted: dovecot-0001-fix-segfault-imap-zlib.patch
===================================================================
--- dovecot-0001-fix-segfault-imap-zlib.patch	2018-03-28 04:33:41 UTC (rev 313064)
+++ dovecot-0001-fix-segfault-imap-zlib.patch	2018-03-28 07:39:01 UTC (rev 313065)
@@ -1,28 +0,0 @@
-From 23da0fa1b30cc11bcc1d467674a0950c527e9ff1 Mon Sep 17 00:00:00 2001
-From: Timo Sirainen <timo.sirainen at dovecot.fi>
-Date: Sat, 6 Jan 2018 21:22:11 +0200
-Subject: [PATCH] ostream-zlib: Ignore missing finish if parent stream is
- ignoring errors
-
-This fixes panic with imap_zlib plugin when client enables the IMAP COMPRESS
-extension and disconnects:
-
-Panic: file ostream-zlib.c: line 36 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0)
----
- src/lib-compression/ostream-zlib.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/lib-compression/ostream-zlib.c b/src/lib-compression/ostream-zlib.c
-index 848ecb7b89..e0b9a91416 100644
---- a/src/lib-compression/ostream-zlib.c
-+++ b/src/lib-compression/ostream-zlib.c
-@@ -33,7 +33,8 @@ static void o_stream_zlib_close(struct iostream_private *stream,
- 	struct zlib_ostream *zstream = (struct zlib_ostream *)stream;
- 
- 	i_assert(zstream->ostream.finished ||
--		 zstream->ostream.ostream.stream_errno != 0);
-+		 zstream->ostream.ostream.stream_errno != 0 ||
-+		 zstream->ostream.error_handling_disabled);
- 	(void)deflateEnd(&zstream->zs);
- 	if (close_parent)
- 		o_stream_close(zstream->ostream.parent);

Deleted: dovecot-0002-fix-segfault-quota-exceeded.patch
===================================================================
--- dovecot-0002-fix-segfault-quota-exceeded.patch	2018-03-28 04:33:41 UTC (rev 313064)
+++ dovecot-0002-fix-segfault-quota-exceeded.patch	2018-03-28 07:39:01 UTC (rev 313065)
@@ -1,162 +0,0 @@
-From 2bf919786518d138cc07d9cc21e14ad5e07e5e56 Mon Sep 17 00:00:00 2001
-From: Stephan Bosch <stephan.bosch at dovecot.fi>
-Date: Wed, 17 Jan 2018 21:26:44 +0100
-Subject: [PATCH] lmtp: local: Fix segfault occurring when quota is exceeded.
-
----
- src/lmtp/lmtp-local.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c
-index fa1ce5d869..5b5fe51a95 100644
---- a/src/lmtp/lmtp-local.c
-+++ b/src/lmtp/lmtp-local.c
-@@ -133,7 +133,7 @@ static void
- lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt,
- 				const char *error)
- {
--	struct smtp_address *address = rcpt->rcpt.rcpt->path;
-+	struct smtp_address *address = rcpt->rcpt.path;
- 	struct lda_settings *lda_set =
- 		mail_storage_service_user_get_set(rcpt->service_user)[2];
- 
-From cdbcc8db8e0a04b2cbf6ca9f20b3ee7f7173552d Mon Sep 17 00:00:00 2001
-From: Stephan Bosch <stephan.bosch at dovecot.fi>
-Date: Wed, 31 Jan 2018 10:30:23 +0100
-Subject: [PATCH 1/3] lmtp: local: Make local variable for rcpt->rcpt.rcpt_cmd
- in lmtp_local_rcpt_check_quota().
-
----
- src/lmtp/lmtp-local.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c
-index c770e35e5b..d0ee4b312e 100644
---- a/src/lmtp/lmtp-local.c
-+++ b/src/lmtp/lmtp-local.c
-@@ -195,6 +195,7 @@ static int
- lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt)
- {
- 	struct client *client = rcpt->rcpt.client;
-+	struct smtp_server_cmd_ctx *cmd = rcpt->rcpt.rcpt_cmd;
- 	struct smtp_address *address = rcpt->rcpt.path;
- 	struct mail_user *user;
- 	struct mail_namespace *ns;
-@@ -245,10 +246,10 @@ lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt)
- 	}
- 
- 	if (ret < 0 &&
--		!smtp_server_command_is_replied(rcpt->rcpt.rcpt_cmd->cmd)) {
--		smtp_server_reply(rcpt->rcpt.rcpt_cmd,
--			451, "4.3.0", "<%s> Temporary internal error",
--			smtp_address_encode(address));
-+		!smtp_server_command_is_replied(cmd->cmd)) {
-+		smtp_server_reply(cmd, 451, "4.3.0",
-+				  "<%s> Temporary internal error",
-+				  smtp_address_encode(address));
- 	}
- 	return ret;
- }
-
-From c23717da4af9d3275cb45cbc67faaa8daa353ec1 Mon Sep 17 00:00:00 2001
-From: Stephan Bosch <stephan.bosch at dovecot.fi>
-Date: Wed, 31 Jan 2018 10:34:11 +0100
-Subject: [PATCH 2/3] lmtp: local: Add explicit cmd parameter to
- lmtp_local_rcpt_reply_overquota().
-
-Using the RCPT cmd is only valid for the RCPT command and not when quota excess
-is detected during DATA. That would cause a segmentation fault, since
-rcpt->rcpt.rcpt_cmd == NULL.
----
- src/lmtp/lmtp-local.c | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c
-index d0ee4b312e..c19c449e61 100644
---- a/src/lmtp/lmtp-local.c
-+++ b/src/lmtp/lmtp-local.c
-@@ -134,6 +134,7 @@ lmtp_local_rcpt_deinit(struct lmtp_local_recipient *rcpt)
- 
- static void
- lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt,
-+				struct smtp_server_cmd_ctx *cmd,
- 				const char *error)
- {
- 	struct smtp_address *address = rcpt->rcpt.path;
-@@ -141,13 +142,11 @@ lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt,
- 		mail_storage_service_user_get_set(rcpt->service_user)[2];
- 
- 	if (lda_set->quota_full_tempfail) {
--		smtp_server_reply(rcpt->rcpt.rcpt_cmd,
--			452, "4.2.2", "<%s> %s",
--			smtp_address_encode(address), error);
-+		smtp_server_reply(cmd, 452, "4.2.2", "<%s> %s",
-+				  smtp_address_encode(address), error);
- 	} else {
--		smtp_server_reply(rcpt->rcpt.rcpt_cmd,
--			552, "5.2.2", "<%s> %s",
--			smtp_address_encode(address), error);
-+		smtp_server_reply(cmd, 552, "5.2.2", "<%s> %s",
-+				  smtp_address_encode(address), error);
- 	}
- }
- 
-@@ -232,7 +231,7 @@ lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt)
- 		if (ret < 0) {
- 			error = mailbox_get_last_error(box, &mail_error);
- 			if (mail_error == MAIL_ERROR_NOQUOTA) {
--				lmtp_local_rcpt_reply_overquota(rcpt, error);
-+				lmtp_local_rcpt_reply_overquota(rcpt, cmd, error);
- 			} else {
- 				i_error("mailbox_get_status(%s, STATUS_CHECK_OVER_QUOTA) "
- 					"failed: %s",
-@@ -623,7 +622,7 @@ lmtp_local_deliver(struct lmtp_local *local,
- 	} else if (storage != NULL) {
- 		error = mail_storage_get_last_error(storage, &mail_error);
- 		if (mail_error == MAIL_ERROR_NOQUOTA) {
--			lmtp_local_rcpt_reply_overquota(rcpt, error);
-+			lmtp_local_rcpt_reply_overquota(rcpt, cmd, error);
- 		} else {
- 			smtp_server_reply_index(cmd, rcpt_idx,
- 				451, "4.2.0", "<%s> %s",
-
-From f8d9e6c977847a411af9986c9be62f74e4b06143 Mon Sep 17 00:00:00 2001
-From: Stephan Bosch <stephan.bosch at dovecot.fi>
-Date: Wed, 31 Jan 2018 10:27:54 +0100
-Subject: [PATCH 3/3] lmtp: local: Use recipient index in
- lmtp_local_rcpt_reply_overquota().
-
-When used during the DATA command, it should send a reply for the correct
-recipient. During the RCPT command there is only one reply due. Added assert
-that checks this.
----
- src/lmtp/lmtp-local.c | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c
-index c19c449e61..0b5e7e06ec 100644
---- a/src/lmtp/lmtp-local.c
-+++ b/src/lmtp/lmtp-local.c
-@@ -138,15 +138,18 @@ lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt,
- 				const char *error)
- {
- 	struct smtp_address *address = rcpt->rcpt.path;
-+	unsigned int rcpt_idx = rcpt->rcpt.index;
- 	struct lda_settings *lda_set =
- 		mail_storage_service_user_get_set(rcpt->service_user)[2];
- 
-+	i_assert(rcpt_idx == 0 || rcpt->rcpt.rcpt_cmd == NULL);
-+
- 	if (lda_set->quota_full_tempfail) {
--		smtp_server_reply(cmd, 452, "4.2.2", "<%s> %s",
--				  smtp_address_encode(address), error);
-+		smtp_server_reply_index(cmd, rcpt_idx, 452, "4.2.2", "<%s> %s",
-+					smtp_address_encode(address), error);
- 	} else {
--		smtp_server_reply(cmd, 552, "5.2.2", "<%s> %s",
--				  smtp_address_encode(address), error);
-+		smtp_server_reply_index(cmd, rcpt_idx, 552, "5.2.2", "<%s> %s",
-+					smtp_address_encode(address), error);
- 	}
- }
- 

Modified: dovecot-0003-dsync-Revert-to-tmp-if-home-does-not-exist.patch
===================================================================
--- dovecot-0003-dsync-Revert-to-tmp-if-home-does-not-exist.patch	2018-03-28 04:33:41 UTC (rev 313064)
+++ dovecot-0003-dsync-Revert-to-tmp-if-home-does-not-exist.patch	2018-03-28 07:39:01 UTC (rev 313065)
@@ -1,49 +1,44 @@
-From f46b7c33c884b41a614a18187268db351c9d6722 Mon Sep 17 00:00:00 2001
-From: Aki Tuomi <aki.tuomi at dovecot.fi>
-Date: Mon, 19 Mar 2018 18:39:27 +0200
-Subject: [PATCH] dsync: Revert to /tmp if home does not exist
+commit 890883f12e8d8dd3309743eb95cf0b04f6e39ea0
+Author: Aki Tuomi <aki.tuomi at dovecot.fi>
+Date:   Mon Mar 19 18:39:27 2018 +0200
 
-Fixes doveadm: Error: Couldn't lock .dovecot-sync.lock: safe_mkstemp(.dovecot-sync.lock) failed: No such file or directory
----
- src/doveadm/dsync/dsync-brain.c | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
+    dsync: Revert to /tmp if home does not exist
+    
+    Fixes doveadm: Error: Couldn't lock .dovecot-sync.lock: safe_mkstemp(.dovecot-sync.lock) failed: No such file or directory
 
 diff --git a/src/doveadm/dsync/dsync-brain.c b/src/doveadm/dsync/dsync-brain.c
-index cb4a411..03afdcd 100644
+index c2b8169..1e84182 100644
 --- a/src/doveadm/dsync/dsync-brain.c
 +++ b/src/doveadm/dsync/dsync-brain.c
-@@ -391,6 +391,7 @@ dsync_brain_lock(struct dsync_brain *brain, const char *remote_hostname)
- 		.lock_method = FILE_LOCK_METHOD_FCNTL,
- 	};
- 	const char *home, *error;
-+	struct stat st;
- 	bool created;
- 	int ret;
+@@ -401,6 +401,7 @@ dsync_brain_lock(struct dsync_brain *brain, const char *remote_hostname)
+                .lock_method = FILE_LOCK_METHOD_FCNTL,
+        };
+        const char *home, *error, *local_hostname = my_hostdomain();
++       struct stat st;
+        bool created;
+        int ret;
  
-@@ -415,8 +416,21 @@ dsync_brain_lock(struct dsync_brain *brain, const char *remote_hostname)
+@@ -437,8 +438,21 @@ dsync_brain_lock(struct dsync_brain *brain, const char *remote_hostname)
  
- 	if (brain->verbose_proctitle)
- 		process_title_set(dsync_brain_get_proctitle_full(brain, DSYNC_BRAIN_TITLE_LOCKING));
--	brain->lock_path = p_strconcat(brain->pool, home,
--				       "/"DSYNC_LOCK_FILENAME, NULL);
+        if (brain->verbose_proctitle)
+                process_title_set(dsync_brain_get_proctitle_full(brain, DSYNC_BRAIN_TITLE_LOCKING));
+-       brain->lock_path = p_strconcat(brain->pool, home,
+-                                      "/"DSYNC_LOCK_FILENAME, NULL);
 +
-+	/* if homedir does not yet exist, create lock under tmpdir */
-+	if (stat(home, &st) < 0) {
-+		if (errno != ENOENT) {
-+			i_error("stat(%s) failed: %m", home);
-+			return -1;
-+		}
-+		brain->lock_path = p_strdup_printf(brain->pool, "%s/%s-%s",
-+						   brain->user->set->mail_temp_dir,
-+						   brain->user->username,
-+						   "/"DSYNC_LOCK_FILENAME);
-+	} else {
-+		brain->lock_path = p_strconcat(brain->pool, home,
-+					       "/"DSYNC_LOCK_FILENAME, NULL);
-+	}
- 	brain->lock_fd = file_create_locked(brain->lock_path, &lock_set,
- 					    &brain->lock, &created, &error);
- 	if (brain->lock_fd == -1)
--- 
-2.1.4
-
++       /* if homedir does not yet exist, create lock under tmpdir */
++       if (stat(home, &st) < 0) {
++               if (errno != ENOENT) {
++                       i_error("stat(%s) failed: %m", home);
++                       return -1;
++               }
++               brain->lock_path = p_strdup_printf(brain->pool, "%s/%s-%s",
++                                                  brain->user->set->mail_temp_dir,
++                                                  brain->user->username,
++                                                  "/"DSYNC_LOCK_FILENAME);
++       } else {
++               brain->lock_path = p_strconcat(brain->pool, home,
++                                              "/"DSYNC_LOCK_FILENAME, NULL);
++       }
+        brain->lock_fd = file_create_locked(brain->lock_path, &lock_set,
+                                            &brain->lock, &created, &error);
+        if (brain->lock_fd == -1)

Added: dovecot.ld.so.conf
===================================================================
--- dovecot.ld.so.conf	                        (rev 0)
+++ dovecot.ld.so.conf	2018-03-28 07:39:01 UTC (rev 313065)
@@ -0,0 +1 @@
+/usr/lib/dovecot



More information about the arch-commits mailing list