git: c79b6d121bd3 - main - mail/courier-imap: Apply hack to fix reported runtime issue

From: Guido Falsi <madpilot_at_FreeBSD.org>
Date: Mon, 07 Apr 2025 11:23:57 UTC
The branch main has been updated by madpilot:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c79b6d121bd3af45d14e9538eddbbe6fda52895f

commit c79b6d121bd3af45d14e9538eddbbe6fda52895f
Author:     Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2025-04-07 11:20:25 +0000
Commit:     Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2025-04-07 11:20:25 +0000

    mail/courier-imap: Apply hack to fix reported runtime issue
    
    A runtime issue has been reported at [1] which causes courier-imap
    to not work properly.
    
    Experimenting shows this issue disappears by downgrading
    devel/libunistring to previous version 1.2, but no clear reason why
    has been uncovered.
    
    This commit applies a patch similar to what is suggested in [1]
    that makes it work as expected.
    
    [1] https://lists.freebsd.org/archives/freebsd-questions/2025-February/006307.html
    
    Reported by:    Benjamin Lutz <mail@maxlor.com>
---
 mail/courier-imap/Makefile                            |  1 +
 .../files/patch-libs_maildir_maildircreate.c          | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/mail/courier-imap/Makefile b/mail/courier-imap/Makefile
index 009f9649ab76..5c4471ce99b5 100644
--- a/mail/courier-imap/Makefile
+++ b/mail/courier-imap/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	courier-imap
 PORTVERSION=	5.2.10
+PORTREVISION=	1
 PORTEPOCH=	2
 CATEGORIES=	mail
 MASTER_SITES=	SF/courier/imap/${PORTVERSION}
diff --git a/mail/courier-imap/files/patch-libs_maildir_maildircreate.c b/mail/courier-imap/files/patch-libs_maildir_maildircreate.c
new file mode 100644
index 000000000000..6394848d0ba1
--- /dev/null
+++ b/mail/courier-imap/files/patch-libs_maildir_maildircreate.c
@@ -0,0 +1,19 @@
+--- libs/maildir/maildircreate.c.orig	2022-05-23 09:00:05 UTC
++++ libs/maildir/maildircreate.c
+@@ -146,6 +146,7 @@ static int maildir_tmpcreate_fd_do(struct maildir_tmpc
+ 	strcat(info->tmpname, hostname);
+ 	strcat(info->tmpname, len_buf);
+ 
++	errno = 0;
+ 	if (stat( info->tmpname, &stat_buf) == 0)
+ 	{
+ 		maildir_tmpcreate_free(info);
+@@ -153,7 +154,7 @@ static int maildir_tmpcreate_fd_do(struct maildir_tmpc
+ 		return -1;
+ 	}
+ 
+-	if (errno != ENOENT)
++	if (errno != 0 && errno != ENOENT)
+ 	{
+ 		maildir_tmpcreate_free(info);
+ 		if (errno == EAGAIN)