diff options
author | ryoon <ryoon@pkgsrc.org> | 2021-02-17 15:10:11 +0000 |
---|---|---|
committer | ryoon <ryoon@pkgsrc.org> | 2021-02-17 15:10:11 +0000 |
commit | cefd6a6574bfc581f7f23a8739ec876e10966ac9 (patch) | |
tree | 3f2c1d5912f8c053601283142829a546cc132f73 /mail/isync | |
parent | 8506fb9639228c576c2c85d6cfb57375eee317b8 (diff) | |
download | pkgsrc-cefd6a6574bfc581f7f23a8739ec876e10966ac9.tar.gz |
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 (limited to 'mail/isync')
-rw-r--r-- | mail/isync/Makefile | 5 | ||||
-rw-r--r-- | mail/isync/PLIST | 5 | ||||
-rw-r--r-- | mail/isync/distinfo | 15 | ||||
-rw-r--r-- | mail/isync/patches/patch-ae | 8 | ||||
-rw-r--r-- | mail/isync/patches/patch-src_compat_Makefile.in | 15 | ||||
-rw-r--r-- | mail/isync/patches/patch-src_drv__imap.c | 110 |
6 files changed, 113 insertions, 45 deletions
diff --git a/mail/isync/Makefile b/mail/isync/Makefile index 788b12e2bcf..84ae87ff901 100644 --- a/mail/isync/Makefile +++ b/mail/isync/Makefile @@ -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 --git a/mail/isync/PLIST b/mail/isync/PLIST index 5f189f41917..8d737093638 100644 --- a/mail/isync/PLIST +++ b/mail/isync/PLIST @@ -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/ChangeLog share/doc/isync/NEWS share/doc/isync/README share/doc/isync/TODO -share/examples/isync/isyncrc.sample share/examples/isync/mbsyncrc.sample diff --git a/mail/isync/distinfo b/mail/isync/distinfo index 6fff636afbd..a79f33db746 100644 --- a/mail/isync/distinfo +++ b/mail/isync/distinfo @@ -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 --git a/mail/isync/patches/patch-ae b/mail/isync/patches/patch-ae index 02352281ae6..7d5e1ade898 100644 --- a/mail/isync/patches/patch-ae +++ b/mail/isync/patches/patch-ae @@ -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 --git a/mail/isync/patches/patch-src_compat_Makefile.in b/mail/isync/patches/patch-src_compat_Makefile.in deleted file mode 100644 index 1b8d4ef25d1..00000000000 --- a/mail/isync/patches/patch-src_compat_Makefile.in +++ /dev/null @@ -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 --git a/mail/isync/patches/patch-src_drv__imap.c b/mail/isync/patches/patch-src_drv__imap.c index 33b581f703e..f36c80da865 100644 --- a/mail/isync/patches/patch-src_drv__imap.c +++ b/mail/isync/patches/patch-src_drv__imap.c @@ -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; + } - if (*cmd == '+') { - flushn(); +@@ -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 (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; + } |