This is a long overdue maintenance release: - SSL now uses SNI, which for example GMail requires - fixed fallbacks for missing UIDPLUS extension (with e.g. DavMail) - fixed UIDVALIDITY recovery with really long Message-id headers - fixed GSSAPI authentication with Kerberos - fixed support for IMAP servers which do not sort search results (e.g., poczta.o2.pl) - fixed CopyArrivalDate on platforms without glibc - fixed useless SASL warnings with certain plugins - the perl 5.14 requirement is now made explicit - improved OpenBSD support - fixed a bunch of compiler warnings
All patches except pledge support have been merged upstream. Keeps working fine in daily usage on amd64. OK? Index: Makefile =================================================================== RCS file: /cvs/ports/mail/isync/Makefile,v retrieving revision 1.39 diff -u -p -r1.39 Makefile --- Makefile 21 Feb 2019 19:22:27 -0000 1.39 +++ Makefile 12 Jun 2019 19:09:33 -0000 @@ -2,8 +2,7 @@ COMMENT= synchronize IMAP4 and maildir mailboxes -DISTNAME= isync-1.3.0 -REVISION= 5 +DISTNAME= isync-1.3.1 CATEGORIES= mail MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=isync/} Index: distinfo =================================================================== RCS file: /cvs/ports/mail/isync/distinfo,v retrieving revision 1.13 diff -u -p -r1.13 distinfo --- distinfo 17 Oct 2017 17:24:14 -0000 1.13 +++ distinfo 12 Jun 2019 19:09:38 -0000 @@ -1,2 +1,2 @@ -SHA256 (isync-1.3.0.tar.gz) = jV9YOXbjEZcFvbon+k/JYugH/1mW8k81SVcXj/ppfJw= -SIZE (isync-1.3.0.tar.gz) = 309459 +SHA256 (isync-1.3.1.tar.gz) = aMtGQ9WBUgl/Acmzq+rX19TJVjGD1y88KjHSK8Fo8Oo= +SIZE (isync-1.3.1.tar.gz) = 311868 Index: patches/patch-src_drv_imap_c =================================================================== RCS file: /cvs/ports/mail/isync/patches/patch-src_drv_imap_c,v retrieving revision 1.2 diff -u -p -r1.2 patch-src_drv_imap_c --- patches/patch-src_drv_imap_c 21 Feb 2019 19:22:27 -0000 1.2 +++ patches/patch-src_drv_imap_c 12 Jun 2019 19:16:07 -0000 @@ -1,7 +1,6 @@ $OpenBSD: patch-src_drv_imap_c,v 1.2 2019/02/21 19:22:27 kn Exp $ -f85e2ae770169227e95168a11aff17372efaa192 -"Fix CopyArrivalDate on platforms without glibc" +Use pledge. Index: src/drv_imap.c --- src/drv_imap.c.orig @@ -15,16 +14,7 @@ Index: src/drv_imap.c #ifdef HAVE_LIBSSL enum { SSL_None, SSL_STARTTLS, SSL_IMAPS }; #endif -@@ -948,7 +950,7 @@ parse_date( const char *str ) - struct tm datetime; - - memset( &datetime, 0, sizeof(datetime) ); -- if (!(end = strptime( str, "%d-%b-%Y %H:%M:%S ", &datetime ))) -+ if (!(end = strptime( str, "%e-%b-%Y %H:%M:%S ", &datetime ))) - return -1; - if ((date = timegm( &datetime )) == -1) - return -1; -@@ -3267,6 +3269,8 @@ imap_parse_store( conffile_t *cfg, store_conf_t **stor +@@ -3317,6 +3319,8 @@ imap_parse_store( conffile_t *cfg, store_conf_t **stor } acc_opt = 1; } Index: patches/patch-src_drv_maildir_c =================================================================== RCS file: patches/patch-src_drv_maildir_c diff -N patches/patch-src_drv_maildir_c --- patches/patch-src_drv_maildir_c 12 May 2018 14:33:50 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,27 +0,0 @@ -$OpenBSD: patch-src_drv_maildir_c,v 1.3 2018/05/12 14:33:50 jca Exp $ - -Print time_t appropriately. - -Index: src/drv_maildir.c ---- src/drv_maildir.c.orig -+++ src/drv_maildir.c -@@ -1569,7 +1569,7 @@ maildir_store_msg( store_t *gctx, msg_data_t *data, in - uint uid; - char buf[_POSIX_PATH_MAX], nbuf[_POSIX_PATH_MAX], fbuf[NUM_FLAGS + 3], base[128]; - -- bl = nfsnprintf( base, sizeof(base), "%ld.%d_%d.%s", (long)time( 0 ), Pid, ++MaildirCount, Hostname ); -+ bl = nfsnprintf( base, sizeof(base), "%lld.%d_%d.%s", (long long)time( 0 ), Pid, ++MaildirCount, Hostname ); - if (!to_trash) { - #ifdef USE_DB - if (ctx->usedb) { -@@ -1750,8 +1750,8 @@ maildir_trash_msg( store_t *gctx, message_t *gmsg, - for (;;) { - nfsnprintf( buf, sizeof(buf), "%s/%s/%s", ctx->path, subdirs[gmsg->status & M_RECENT], msg->base ); - s = strstr( msg->base, ((maildir_store_conf_t *)gctx->conf)->info_prefix ); -- nfsnprintf( nbuf, sizeof(nbuf), "%s/%s/%ld.%d_%d.%s%s", ctx->trash, -- subdirs[gmsg->status & M_RECENT], (long)time( 0 ), Pid, ++MaildirCount, Hostname, s ? s : "" ); -+ nfsnprintf( nbuf, sizeof(nbuf), "%s/%s/%lld.%d_%d.%s%s", ctx->trash, -+ subdirs[gmsg->status & M_RECENT], (long long)time( 0 ), Pid, ++MaildirCount, Hostname, s ? s : "" ); - if (!rename( buf, nbuf )) - break; - if (!stat( buf, &st )) { Index: patches/patch-src_drv_proxy_c =================================================================== RCS file: patches/patch-src_drv_proxy_c diff -N patches/patch-src_drv_proxy_c --- patches/patch-src_drv_proxy_c 12 May 2018 14:33:50 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,29 +0,0 @@ -$OpenBSD: patch-src_drv_proxy_c,v 1.1 2018/05/12 14:33:50 jca Exp $ - -Print time_t appropriately. - -Index: src/drv_proxy.c ---- src/drv_proxy.c.orig -+++ src/drv_proxy.c -@@ -239,8 +239,8 @@ proxy_@name@( store_t *gctx@decl_args@, void (*cb)( @d - static char fbuf[as(Flags) + 1]; - proxy_make_flags( cmd->data->flags, fbuf ); - //# END --//# DEFINE fetch_msg_print_fmt_cb_args , flags=%s, date=%ld, size=%d --//# DEFINE fetch_msg_print_pass_cb_args , fbuf, cmd->data->date, cmd->data->len -+//# DEFINE fetch_msg_print_fmt_cb_args , flags=%s, date=%lld, size=%d -+//# DEFINE fetch_msg_print_pass_cb_args , fbuf, (long long)cmd->data->date, cmd->data->len - //# DEFINE fetch_msg_print_cb_args - if (sts == DRV_OK && (DFlags & DEBUG_DRV_ALL)) { - printf( "%s=========\n", cmd->gen.ctx->label ); -@@ -254,8 +254,8 @@ proxy_@name@( store_t *gctx@decl_args@, void (*cb)( @d - static char fbuf[as(Flags) + 1]; - proxy_make_flags( data->flags, fbuf ); - //# END --//# DEFINE store_msg_print_fmt_args , flags=%s, date=%ld, size=%d, to_trash=%s --//# DEFINE store_msg_print_pass_args , fbuf, data->date, data->len, to_trash ? "yes" : "no" -+//# DEFINE store_msg_print_fmt_args , flags=%s, date=%lld, size=%d, to_trash=%s -+//# DEFINE store_msg_print_pass_args , fbuf, (long long)data->date, data->len, to_trash ? "yes" : "no" - //# DEFINE store_msg_print_args - if (DFlags & DEBUG_DRV_ALL) { - printf( "%s>>>>>>>>>\n", ctx->label ); Index: patches/patch-src_main_c =================================================================== RCS file: /cvs/ports/mail/isync/patches/patch-src_main_c,v retrieving revision 1.6 diff -u -p -r1.6 patch-src_main_c --- patches/patch-src_main_c 8 Nov 2018 11:05:32 -0000 1.6 +++ patches/patch-src_main_c 12 Jun 2019 19:16:27 -0000 @@ -1,5 +1,7 @@ $OpenBSD: patch-src_main_c,v 1.6 2018/11/08 11:05:32 sthen Exp $ +Use pledge. + Index: src/main.c --- src/main.c.orig +++ src/main.c Index: patches/patch-src_socket_c =================================================================== RCS file: patches/patch-src_socket_c diff -N patches/patch-src_socket_c --- patches/patch-src_socket_c 12 May 2018 14:37:36 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,37 +0,0 @@ -$OpenBSD: patch-src_socket_c,v 1.4 2018/05/12 14:37:36 jca Exp $ - -Use functions provided by recent LibreSSL versions. - -Fix format string. - -Index: src/socket.c ---- src/socket.c.orig -+++ src/socket.c -@@ -40,7 +40,8 @@ - # include <openssl/ssl.h> - # include <openssl/err.h> - # include <openssl/x509v3.h> --# if OPENSSL_VERSION_NUMBER < 0x10100000L -+# if OPENSSL_VERSION_NUMBER < 0x10100000L \ -+ || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070100fL) - # define X509_OBJECT_get0_X509(o) ((o)->data.x509) - # define X509_STORE_get0_objects(o) ((o)->objs) - # endif -@@ -470,7 +471,7 @@ socket_connect_one( conn_t *sock ) - struct sockaddr_in6 *in6 = ((struct sockaddr_in6 *)ai->ai_addr); - char sockname[64]; - in6->sin6_port = htons( sock->conf->port ); -- nfasprintf( &sock->name, "%s ([%s]:%hu)", -+ nfasprintf( &sock->name, "%s ([%s]:%d)", - sock->conf->host, inet_ntop( AF_INET6, &in6->sin6_addr, sockname, sizeof(sockname) ), sock->conf->port ); - } else - #endif -@@ -482,7 +483,7 @@ socket_connect_one( conn_t *sock ) - in->sin_addr.s_addr = *((int *)*sock->curr_addr); - #endif - in->sin_port = htons( sock->conf->port ); -- nfasprintf( &sock->name, "%s (%s:%hu)", -+ nfasprintf( &sock->name, "%s (%s:%d)", - sock->conf->host, inet_ntoa( in->sin_addr ), sock->conf->port ); - } -