summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorryoon <ryoon@pkgsrc.org>2021-02-17 15:10:11 +0000
committerryoon <ryoon@pkgsrc.org>2021-02-17 15:10:11 +0000
commitcefd6a6574bfc581f7f23a8739ec876e10966ac9 (patch)
tree3f2c1d5912f8c053601283142829a546cc132f73 /mail
parent8506fb9639228c576c2c85d6cfb57375eee317b8 (diff)
downloadpkgsrc-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')
-rw-r--r--mail/isync/Makefile5
-rw-r--r--mail/isync/PLIST5
-rw-r--r--mail/isync/distinfo15
-rw-r--r--mail/isync/patches/patch-ae8
-rw-r--r--mail/isync/patches/patch-src_compat_Makefile.in15
-rw-r--r--mail/isync/patches/patch-src_drv__imap.c110
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;
+ }