pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mail/isync isync: Update to 1.4.0



details:   https://anonhg.NetBSD.org/pkgsrc/rev/bc9820949682
branches:  trunk
changeset: 447175:bc9820949682
user:      ryoon <ryoon%pkgsrc.org@localhost>
date:      Wed Feb 17 15:10:11 2021 +0000

description:
isync: Update to 1.4.0

* Import upstream patch to fix runtime errors.

Changelog:
This is a feature release that comes with significant new functionality:

- The IMAP '$Forwarded' / Maildir 'P' (passed) flag is supported now.

- Support for configuring a TLS cipher string was added.

- IMAP mailbox subscriptions are supported now.

- The IMAP user query can be scripted now.

- Added built-in support for the macOS Keychain.

- Messages excluded by MaxSize will now result in placeholders.

Compatibility concerns:

- The 'isync' compatibility wrapper was removed.

- A C11 compiler is required for building now.

- The validity of the config file is checked more stricly now, including:
  - Appearance of options in unexpected places
  - The capitalization of INBOX

- The new TLSv1.3 flag must be added to SSLVersions if the option is
  used, unless disabling that version is desired (which is unlikely).

- Removed support for the obsolete/insecure SSL v3.

- The use of Master/Slave terminology has been deprecated.

Bugfixes:

- All bugfixes up to 1.3.4 are included.
- IMAP protocol errors are handled more robustly now.
- Fixed support for SASL's built-in EXTERNAL mechanism.
- Improved reliability of synchronization when resuming interrupted runs.
- Fixed MaxSize being ignored under certain circumstances when only one of
  New and ReNew was requested.
- Fixed a network inefficiency occurring with server-side mailboxes that
  receive new messages only via mbsync.

diffstat:

 mail/isync/Makefile                             |    5 +-
 mail/isync/PLIST                                |    5 +-
 mail/isync/distinfo                             |   15 +-
 mail/isync/patches/patch-ae                     |    8 +-
 mail/isync/patches/patch-src_compat_Makefile.in |   15 ---
 mail/isync/patches/patch-src_drv__imap.c        |  110 +++++++++++++++++++++--
 6 files changed, 113 insertions(+), 45 deletions(-)

diffs (210 lines):

diff -r 975d402ad931 -r bc9820949682 mail/isync/Makefile
--- a/mail/isync/Makefile       Wed Feb 17 14:40:33 2021 +0000
+++ b/mail/isync/Makefile       Wed Feb 17 15:10:11 2021 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.50 2020/08/31 18:09:56 wiz Exp $
+# $NetBSD: Makefile,v 1.51 2021/02/17 15:10:11 ryoon Exp $
 
-DISTNAME=      isync-1.3.1
-PKGREVISION=   3
+DISTNAME=      isync-1.4.0
 CATEGORIES=    mail net
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=isync/}
 
diff -r 975d402ad931 -r bc9820949682 mail/isync/PLIST
--- a/mail/isync/PLIST  Wed Feb 17 14:40:33 2021 +0000
+++ b/mail/isync/PLIST  Wed Feb 17 15:10:11 2021 +0000
@@ -1,9 +1,7 @@
-@comment $NetBSD: PLIST,v 1.6 2018/09/19 13:08:14 schmonz Exp $
-bin/isync
+@comment $NetBSD: PLIST,v 1.7 2021/02/17 15:10:11 ryoon Exp $
 bin/mbsync
 bin/mbsync-get-cert
 bin/mdconvert
-man/man1/isync.1
 man/man1/mbsync.1
 man/man1/mdconvert.1
 share/doc/isync/AUTHORS
@@ -11,5 +9,4 @@
 share/doc/isync/NEWS
 share/doc/isync/README
 share/doc/isync/TODO
-share/examples/isync/isyncrc.sample
 share/examples/isync/mbsyncrc.sample
diff -r 975d402ad931 -r bc9820949682 mail/isync/distinfo
--- a/mail/isync/distinfo       Wed Feb 17 14:40:33 2021 +0000
+++ b/mail/isync/distinfo       Wed Feb 17 15:10:11 2021 +0000
@@ -1,10 +1,9 @@
-$NetBSD: distinfo,v 1.20 2020/06/12 13:46:22 ryoon Exp $
+$NetBSD: distinfo,v 1.21 2021/02/17 15:10:11 ryoon Exp $
 
-SHA1 (isync-1.3.1.tar.gz) = 6806fbe99537c119d2c4e40b9189d4d05f870bda
-RMD160 (isync-1.3.1.tar.gz) = 65ce1693e2eec5619fc9648e6c568eb4bf9679be
-SHA512 (isync-1.3.1.tar.gz) = 59d702d41d4a4e72f03cb282b414d0bb859593171763e845bc24d116a74f807a79e5be61f1dd1f59a9ece492322bceac156b08958a246cbfbe7f230fab4cdda2
-Size (isync-1.3.1.tar.gz) = 311868 bytes
-SHA1 (patch-ae) = e1a1badcb99fe6089a15a259985933aceedfc110
+SHA1 (isync-1.4.0.tar.gz) = ccd641b0f08de6f68378fac60f01cc13f1fe718c
+RMD160 (isync-1.4.0.tar.gz) = 58e71c09c8757bb31b3bdbc5ecd4c9ca0e287e6c
+SHA512 (isync-1.4.0.tar.gz) = 6520bcfd9dc5d7c1d51d048c1814104815a3f76a3258ed79c06b22af07d4648340b1c4314175dc448bb109187c3af56565362c58fc744741b1806894e62374f5
+Size (isync-1.4.0.tar.gz) = 334991 bytes
+SHA1 (patch-ae) = a3bdbdd05e32474bf76f8110561bdcea9b72b0c3
 SHA1 (patch-src_Makefile.in) = b989a7627dbb7c989dd26c3e20beeceb000a7a47
-SHA1 (patch-src_compat_Makefile.in) = ffaba182c6b6b5c50fe82104d508438a3b62ecfd
-SHA1 (patch-src_drv__imap.c) = bfb7c6a91eb32b98d082bc6c2b183bf5f1a4561d
+SHA1 (patch-src_drv__imap.c) = d27230038c7442c6a0f63ccbb566b67cb1812632
diff -r 975d402ad931 -r bc9820949682 mail/isync/patches/patch-ae
--- a/mail/isync/patches/patch-ae       Wed Feb 17 14:40:33 2021 +0000
+++ b/mail/isync/patches/patch-ae       Wed Feb 17 15:10:11 2021 +0000
@@ -1,11 +1,11 @@
-$NetBSD: patch-ae,v 1.6 2014/04/24 14:48:44 schmonz Exp $
+$NetBSD: patch-ae,v 1.7 2021/02/17 15:10:11 ryoon Exp $
 
 Avoid segfault when parsing configuration file under NetBSD.
 
---- src/config.c.orig  2013-12-13 17:54:37.000000000 +0000
+--- src/config.c.orig  2021-01-01 13:46:36.000000000 +0000
 +++ src/config.c
-@@ -316,7 +316,7 @@ int
- load_config( const char *where, int pseudo )
+@@ -320,7 +320,7 @@ int
+ load_config( const char *where )
  {
        conffile_t cfile;
 -      store_conf_t *store, **storeapp = &stores;
diff -r 975d402ad931 -r bc9820949682 mail/isync/patches/patch-src_compat_Makefile.in
--- a/mail/isync/patches/patch-src_compat_Makefile.in   Wed Feb 17 14:40:33 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-$NetBSD: patch-src_compat_Makefile.in,v 1.2 2016/12/15 14:15:01 schmonz Exp $
-
-Install example config files in pkgsrc hierarchy.
-
---- src/compat/Makefile.in.orig        2015-07-18 16:11:33.000000000 +0000
-+++ src/compat/Makefile.in
-@@ -295,7 +295,7 @@ isync_SOURCES = main.c config.c convert.
- isync_LDADD = $(DB_LIBS)
- noinst_HEADERS = isync.h
- man_MANS = isync.1
--exampledir = $(docdir)/examples
-+exampledir = $(datadir)/examples/isync
- example_DATA = isyncrc.sample
- EXTRA_DIST = $(example_DATA) $(man_MANS)
- all: all-am
diff -r 975d402ad931 -r bc9820949682 mail/isync/patches/patch-src_drv__imap.c
--- a/mail/isync/patches/patch-src_drv__imap.c  Wed Feb 17 14:40:33 2021 +0000
+++ b/mail/isync/patches/patch-src_drv__imap.c  Wed Feb 17 15:10:11 2021 +0000
@@ -1,15 +1,103 @@
-$NetBSD: patch-src_drv__imap.c,v 1.1 2020/06/12 13:46:22 ryoon Exp $
+$NetBSD: patch-src_drv__imap.c,v 1.2 2021/02/17 15:10:11 ryoon Exp $
 
-* Google's Gmail access token is longer than 80 bytes.
+* Fix some runtime errors.
+  From upstream Git: 9e3041de9367113f3b2d7d7543d2eae4c78e2c67 to 95a83c8220861185906df5b38eed589984847bfb
 
---- src/drv_imap.c.orig        2019-03-10 10:27:55.000000000 +0000
+--- src/drv_imap.c
 +++ src/drv_imap.c
-@@ -1867,7 +1867,7 @@ ensure_password( imap_server_conf_t *srv
-       if (cmd) {
-               FILE *fp;
-               int ret;
--              char buffer[80];
-+              char buffer[1024];
+@@ -924,6 +924,7 @@ parse_imap_list( imap_store_t *ctx, char **sp, parse_list_state_t *sts )
+       }
+   bail:
+       free_list( sts->head );
++      sts->level = 0;
+       return LIST_BAD;
+ }
+ 
+@@ -1181,7 +1182,8 @@ parse_fetch_rsp( imap_store_t *ctx, list_t *list, char *s ATTR_UNUSED )
+               for (cmdp = ctx->in_progress; cmdp; cmdp = cmdp->next)
+                       if (cmdp->param.uid == uid)
+                               goto gotuid;
+-              goto badrsp;
++              error( "IMAP error: unexpected FETCH response with BODY (UID %u)\n", uid );
++              return LIST_BAD;
+         gotuid:
+               msgdata = ((imap_cmd_fetch_msg_t *)cmdp)->msg_data;
+               msgdata->data = body->val;
+@@ -1208,9 +1210,8 @@ parse_fetch_rsp( imap_store_t *ctx, list_t *list, char *s ATTR_UNUSED )
+                       memcpy( cur->tuid, tuid, TUIDL );
+               status &= ~(M_FLAGS | M_RECENT | M_SIZE | M_HEADER);
+       } else {
+-        badrsp:
+-              error( "IMAP error: unexpected FETCH response (UID %u)\n", uid );
+-              return LIST_BAD;
++              // These may come in as a result of STORE FLAGS despite .SILENT.
++              status &= ~(M_FLAGS | M_RECENT);
+       }
  
-               if (*cmd == '+') {
-                       flushn();
+       if (status) {
+@@ -1252,48 +1253,53 @@ parse_response_code( imap_store_t *ctx, imap_cmd_t *cmd, char *s )
+       if (!s || *s != '[')
+               return RESP_OK;         /* no response code */
+       s++;
+-      if (!(p = strchr( s, ']' ))) {
+-        bad_resp:
++      if (!(arg = next_arg( &s ))) {
+               error( "IMAP error: malformed response code\n" );
+               return RESP_CANCEL;
+       }
+-      *p++ = 0;
+-      if (!(arg = next_arg( &s )))
+-              goto bad_resp;
+       if (!strcmp( "UIDVALIDITY", arg )) {
+               if (!(arg = next_arg( &s )) ||
+-                  (ctx->uidvalidity = strtoul( arg, &earg, 10 ), *earg))
++                  (ctx->uidvalidity = strtoul( arg, &earg, 10 ), *earg != ']'))
+               {
+                       error( "IMAP error: malformed UIDVALIDITY status\n" );
+                       return RESP_CANCEL;
+               }
+       } else if (!strcmp( "UIDNEXT", arg )) {
+               if (!(arg = next_arg( &s )) ||
+-                  (ctx->uidnext = strtoul( arg, &earg, 10 ), *earg))
++                  (ctx->uidnext = strtoul( arg, &earg, 10 ), *earg != ']'))
+               {
+                       error( "IMAP error: malformed UIDNEXT status\n" );
+                       return RESP_CANCEL;
+               }
+       } else if (!strcmp( "CAPABILITY", arg )) {
++              if (!(p = strchr( s, ']' ))) {
++                      error( "IMAP error: malformed CAPABILITY status\n" );
++                      return RESP_CANCEL;
++              }
++              *p = 0;
+               parse_capability( ctx, s );
+-      } else if (!strcmp( "ALERT", arg )) {
++      } else if (!strcmp( "ALERT]", arg )) {
+               /* RFC2060 says that these messages MUST be displayed
+                * to the user
+                */
+-              for (; isspace( (uchar)*p ); p++);
+-              error( "*** IMAP ALERT *** %s\n", p );
++              if (!s) {
++                      error( "IMAP error: malformed ALERT status\n" );
++                      return RESP_CANCEL;
++              }
++              for (; isspace( (uchar)*s ); s++);
++              error( "*** IMAP ALERT *** %s\n", s );
+       } else if (cmd && !strcmp( "APPENDUID", arg )) {
+               if (!(arg = next_arg( &s )) ||
+                   (ctx->uidvalidity = strtoul( arg, &earg, 10 ), *earg) ||
+                   !(arg = next_arg( &s )) ||
+-                  (((imap_cmd_out_uid_t *)cmd)->out_uid = strtoul( arg, &earg, 10 ), *earg))
++                  (((imap_cmd_out_uid_t *)cmd)->out_uid = strtoul( arg, &earg, 10 ), *earg != ']'))
+               {
+                       error( "IMAP error: malformed APPENDUID status\n" );
+                       return RESP_CANCEL;
+               }
+       } else if (!strcmp( "PERMANENTFLAGS", arg )) {
+               parse_list_init( &ctx->parse_list_sts );
+-              if (parse_imap_list( NULL, &s, &ctx->parse_list_sts ) != LIST_OK) {
++              if (parse_imap_list( NULL, &s, &ctx->parse_list_sts ) != LIST_OK || *s != ']') {
+                       error( "IMAP error: malformed PERMANENTFLAGS status\n" );
+                       return RESP_CANCEL;
+               }



Home | Main Index | Thread Index | Old Index