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