Эх сурвалжийг харах

Merge branch '1.2'

Conflicts:
	Makefile.am
	configure.ac
	debian/.gitignore
Oswald Buddenhagen 7 жил өмнө
parent
commit
1b354fa61a

+ 2 - 6
Makefile.am

@@ -58,12 +58,8 @@ cov-scan: clean
 	/opt/cov-analysis-*/bin/cov-build --dir cov-int $(MAKE)
 	/opt/cov-analysis-*/bin/cov-build --dir cov-int $(MAKE)
 	tar cavf isync.tar.xz cov-int
 	tar cavf isync.tar.xz cov-int
 
 
-deb: deb-clean
-	CFLAGS= fakeroot debian/rules binary
-
-deb-clean:
-	dh_clean -Xsrc/
-	fakeroot debian/rules clean
+deb:
+	CFLAGS= INSTALL= dpkg-buildpackage -b --no-sign
 
 
 dist-hook:
 dist-hook:
 	find $(distdir)/debian \( -name .#\*# -o -type l \) -print0 | xargs -0r rm -rf
 	find $(distdir)/debian \( -name .#\*# -o -type l \) -print0 | xargs -0r rm -rf

+ 6 - 6
configure.ac

@@ -54,13 +54,13 @@ if test "x$ob_cv_with_ssl" != xno; then
       dnl Detect the pkg-config tool, as it may have extra info about the openssl
       dnl Detect the pkg-config tool, as it may have extra info about the openssl
       dnl installation we can use. I *believe* this is what we are expected to do
       dnl installation we can use. I *believe* this is what we are expected to do
       dnl on really recent Redhat Linux hosts.
       dnl on really recent Redhat Linux hosts.
-      AC_PATH_PROG(PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)
-      if test "$PKGCONFIG" != "no" ; then
+      PKG_PROG_PKG_CONFIG
+      if test "x$PKG_CONFIG" != "x" ; then
         AC_MSG_CHECKING([OpenSSL presence with pkg-config])
         AC_MSG_CHECKING([OpenSSL presence with pkg-config])
-        if $PKGCONFIG --exists openssl; then
-          SSL_LIBS=`$PKGCONFIG --libs-only-l openssl`
-          SSL_LDFLAGS=`$PKGCONFIG --libs-only-L openssl`
-          SSL_CPPFLAGS=`$PKGCONFIG --cflags-only-I openssl`
+        if $PKG_CONFIG --exists openssl; then
+          SSL_LIBS=`$PKG_CONFIG --libs-only-l openssl`
+          SSL_LDFLAGS=`$PKG_CONFIG --libs-only-L openssl`
+          SSL_CPPFLAGS=`$PKG_CONFIG --cflags-only-I openssl`
           have_ssl_paths=yes
           have_ssl_paths=yes
           AC_MSG_RESULT([found])
           AC_MSG_RESULT([found])
         else
         else

+ 3 - 1
debian/.gitignore

@@ -1,5 +1,7 @@
+/.debhelper
+/autoreconf.after
+/autoreconf.before
 /files
 /files
 /isync
 /isync
 /isync.debhelper.log
 /isync.debhelper.log
-/isync.postrm.debhelper
 /isync.substvars
 /isync.substvars

+ 12 - 0
debian/README.Debian

@@ -0,0 +1,12 @@
+A note from isync's web site:
+
+isync can be integrated into Mutt fairly easily with a few hooks:
+
+	folder-hook ~A bind index $ <sync-mailbox>
+	folder-hook +maildir 'macro index $ "<sync-mailbox>!isync -e maildir\n"'
+
+where maildir is the name of the local mailbox (or its alias). This works well
+so long as you are not modifying the IMAP mailbox outside of Mutt. However, if
+you are using another mail program simultaneously Mutt will have the wrong idea
+of the local mailbox flags and messages will start disappearing from its index
+display (don't worry, they are still on disk).

+ 94 - 0
debian/changelog

@@ -1,3 +1,97 @@
+isync (1.2.3-0) unstable; urgency=low
+
+  * Upload to unstable (with urgency=low)
+
+ -- Oswald Buddenhagen <ossi@users.sf.net>  Sun, 01 Oct 2017 12:12:12 +0000
+
+isync (1.2.1-2) unstable; urgency=low
+
+  * Upload to unstable (with urgency=low)
+  * Don't call uupdate after uscan
+  * Import patch to fix build with OpenSSL 1.1 (Closes: #828357)
+  * Bump Standards-Version to 3.9.8 (no changes needed)
+  * Add pkg-config to Build-Depends
+  * Update Vcs-* URLs
+  * Fix spelling-error-in-binary
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Sat, 19 Nov 2016 17:14:42 +0000
+
+isync (1.2.1-1) experimental; urgency=medium
+
+  [ Evgeni Golov ]
+  * New upstream release.
+  * Explicitly Build-Depend on zlib1g-dev
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Sat, 09 Jan 2016 12:56:39 +0000
+
+isync (1.2.0-1) experimental; urgency=medium
+
+  * New upstream release
+    - Only show sync progress by default (Closes: #765052)
+  * Enable libsasl support
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Mon, 06 Apr 2015 13:42:24 +0200
+
+isync (1.1.2-1) unstable; urgency=medium
+
+  * New upstream release
+  * Bump Standards-Version to 3.9.6 (no changes needed)
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Sun, 01 Feb 2015 20:42:25 +0100
+
+isync (1.1.1-1) unstable; urgency=medium
+
+  * New upstream release
+    - Don't lie about the default of User (Closes: #744389)
+    - Don't forget to reset message counts when skipping scan (Closes: #744259)
+    - Rework maildir store mapping (Closes: #737708)
+  * Drop 01_fix-manpages.patch (merged upstream)
+  * Drop 02_fix-empty-folder-sync.patch (merged upstream)
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Tue, 03 Jun 2014 21:00:44 +0200
+
+isync (1.1.0-2) unstable; urgency=medium
+
+  * Drop 02_fix-duplicate-changelog.patch
+    (rm the file after installation instead)
+  * Update 01_fix-manpages.patch
+  * Add 02_fix-empty-folder-sync.patch (Closes: #738873)
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Fri, 14 Feb 2014 20:41:49 +0100
+
+isync (1.1.0-1) unstable; urgency=low
+
+  * New upstream release (Closes: #674403)
+    - Fix overlapping memcpy (Closes: #650373)
+    - Fix segfault while syncing mailboxes (Closes: #411120)
+    - Fix segfault when invoked with arguments without configuration
+      (Closes: #727239)
+  * Bump debhelper compat level, update Build-Depends
+  * Switch to short-form dh rules, remove useless files
+  * Switch to 3.0 (quilt) source format
+  * Remove empty patches/ directory
+  * Drop local source modifications
+  * Update short/long descriptions
+  * Add 01_fix-manpages.patch to fix manpage errors and typos
+  * Add Homepage field
+  * Update copyright file to Copyright-Format 1.0
+  * Add Vcs-* fields
+  * Add 02_fix-duplicate-changelog.patch to avoid duplicate changelog install
+  * Add myself to Uploaders
+  * Bump Standards-Version to 3.9.5 (no changes needed)
+  * Use dh-autoreconf instead of autotools-dev
+
+ -- Alessandro Ghedini <ghedo@debian.org>  Sun, 12 Jan 2014 16:35:52 +0100
+
+isync (1.0.4-2.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Apply upstream patch for CVE-2013-0289.
+    Fix incorrect server's SSL x509.v3 certificate validation when
+    performing IMAP synchronization. (Closes: #701052)
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Sun, 24 Feb 2013 09:27:55 +0100
+
 isync (1.0.4-2.1) unstable; urgency=low
 isync (1.0.4-2.1) unstable; urgency=low
 
 
   * Non-maintainer upload.
   * Non-maintainer upload.

+ 1 - 1
debian/compat

@@ -1 +1 @@
-4
+9

+ 27 - 18
debian/control

@@ -2,33 +2,42 @@ Source: isync
 Section: mail
 Section: mail
 Priority: optional
 Priority: optional
 Maintainer: Nicolas Boullis <nboullis@debian.org>
 Maintainer: Nicolas Boullis <nboullis@debian.org>
-Uploaders: Theodore Y. Ts'o <tytso@mit.edu>
-Standards-Version: 3.7.3
-Build-Depends: libssl-dev (>= 0.9.8), debhelper (>= 4.1.16), dpkg-dev (>= 1.9.0), libdb-dev
+Uploaders: Theodore Y. Ts'o <tytso@mit.edu>,
+ Alessandro Ghedini <ghedo@debian.org>
+Standards-Version: 3.9.8
+Build-Depends: debhelper (>= 9),
+ dh-autoreconf,
+ libdb-dev,
+ libsasl2-dev,
+ libssl-dev,
+ pkg-config,
+ zlib1g-dev
+Vcs-Git: https://anonscm.debian.org/git/collab-maint/isync.git
+Vcs-Browser: https://anonscm.debian.org/gitweb/?p=collab-maint/isync.git
+Homepage: http://isync.sourceforge.net/
 
 
 Package: isync
 Package: isync
 Architecture: any
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Suggests: mutt
 Suggests: mutt
-Description: Synchronize Maildir and IMAP4 mailboxes
- A command line application which synchronizes mailboxes; currently
- Maildir and IMAP4 mailboxes are supported.
- New messages, message deletions and flag changes can be propagated both ways.
- It is useful for working in disconnected mode, such as on a laptop or with a
- non-permanent internet collection (dIMAP).
+Description: IMAP and MailDir mailbox synchronizer
+ mbsync/isync is a command line application which synchronizes mailboxes;
+ currently Maildir and IMAP4 mailboxes are supported. New messages, message
+ deletions and flag changes can be propagated both ways. isync is suitable
+ for use in IMAP-disconnected mode.
  .
  .
- The main application was much improved in version 1.0. Those
- improvements lead to interface changes and the application being
- renamed to mbsync. The application isync is now only a wrapper to
- keep compatibility with earlier versions.
+ The main application was much improved in version 1.0. Those improvements
+ lead to interface changes and the application being renamed to mbsync. The
+ application isync is now only a wrapper to keep compatibility with earlier
+ versions.
  .
  .
  Features:
  Features:
   * Fine-grained selection of synchronization operations to perform
   * Fine-grained selection of synchronization operations to perform
   * Synchronizes single mailboxes or entire mailbox collections
   * Synchronizes single mailboxes or entire mailbox collections
   * Partial mirrors possible: keep only the latest messages locally
   * Partial mirrors possible: keep only the latest messages locally
   * Trash functionality: backup messages before removing them
   * Trash functionality: backup messages before removing them
-  * IMAP features:
-    * Supports TLS/SSL via imaps: (port 993) and STARTTLS (RFC2595)
-    * Supports CRAM-MD5 (RFC2195) for authentication
-    * Supports NAMESPACE (RFC2342) for simplified configuration
-    * Pipelining for maximum speed
+ IMAP features:
+  * Security: supports TLS/SSL via imaps: (port 993) and STARTTLS; SASL
+    for authentication
+  * Supports NAMESPACE for simplified configuration
+  * Pipelining for maximum speed

+ 30 - 29
debian/copyright

@@ -1,32 +1,33 @@
-This package was debianized by Tommi Virtanen <tv@debian.org> and is now
-maintained by Nicolas Boullis <nboullis@debian.org>.
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: isync
+Source: http://isync.sourceforge.net
 
 
-It was downloaded from http://isync.sourceforge.net/
+Files: *
+Copyright: 2000-2002, Michael R. Elkins <me@mutt.org>
+ 2002-2017, Oswald Buddenhagen <ossi@users.sf.net>
+ 2004, Theodore Y. Ts'o <tytso@mit.edu>
+License: GPL-2+
 
 
-Upstream Author: Michael R. Elkins <me@mutt.org>,
-                 Oswald Buddenhagen <ossi@users.sf.net>
+Files: debian/*
+Copyright: 2013, Alessandro Ghedini <ghedo@debian.org>
+License: GPL-2+
 
 
-Copyright:
-
- * isync - IMAP4 to maildir mailbox synchronizer
- * Copyright (C) 2000-2002 Michael R. Elkins <me@mutt.org>
- * Copyright (C) 2002-2006 Oswald Buddenhagen <ossi@users.sf.net>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, isync may be linked with the OpenSSL library,
- * despite that library's more restrictive license.
-
-On Debian systems, the complete text of the GNU General Public
-License can be found in /usr/share/common-licenses/GPL
+License: GPL-2+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ As a special exception, mbsync may be linked with the OpenSSL library,
+ despite that library's more restrictive license.
+ .
+ On Debian systems, the complete text of the GNU General Public License version
+ 2 can be found in "/usr/share/common-licenses/GPL-2".

+ 0 - 1
debian/dirs

@@ -1 +0,0 @@
-usr/bin

+ 0 - 3
debian/docs

@@ -1,3 +0,0 @@
-NEWS
-README
-TODO

+ 0 - 39
debian/generate-deb

@@ -1,39 +0,0 @@
-#!/bin/sh
-#
-# Intended to be run from the root of the isync source tree in the repository.
-#
-VERSION=`dpkg-parsechangelog | sed -ne 's/^Version: \(.*\)-[^-]\+$/\1/p'`
-OLDVERSION=$VERSION
-
-if echo $VERSION | grep +cvsXXXXXXXX; then
-	DATE=`date +%Y%m%d`
-	VERSION=`echo $VERSION | sed -e s/+cvsXXXXXXXX/+cvs${DATE}/`
-else
-	if [ ! -f ../isync_$VERSION.orig.tar.gz ]; then
-		echo isync_$VERSION.orig.tar.gz must be found in the parent directory.
-		exit 1
-	fi
-fi
-rm -rf ../isync-$VERSION
-
-fakeroot ./debian/rules clean
-cp -rl . ../isync-$VERSION
-cd ../isync-$VERSION
-if [ "$OLDVERSION" != "$VERSION" ]; then
-	sed -e s/+cvsXXXXXXXX/+cvs${DATE}/ < debian/changelog > debian/changelog.new
-	mv debian/changelog.new debian/changelog
-fi 
-find . -name .git -print0 | xargs -0r rm -rf
-find . -name .gitignore -print0 | xargs -0r rm
-find . -type l -print0 | xargs -0r rm
-find . -name .#\*#  -print0 | xargs -0r rm
-aclocal
-autoheader
-automake --add-missing --copy
-autoconf
-if [ -n "$DOSIGN" ]; then
-    SIGNOPTS=
-else
-    SIGNOPTS="-us -uc"
-fi
-dpkg-buildpackage -rfakeroot $SIGNOPTS

+ 8 - 53
debian/rules

@@ -1,55 +1,10 @@
 #!/usr/bin/make -f
 #!/usr/bin/make -f
 
 
-CFLAGS = -Wall -g
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-CFLAGS += -O0
-else
-CFLAGS += -O2
-endif
-
-DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-
-build: build-stamp
-build-stamp:
-	dh_testdir
-	./configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) --prefix=/usr --mandir=/usr/share/man 
-	$(MAKE) CFLAGS="$(CFLAGS)"
-	touch build-stamp
-
-clean:
-	dh_testdir
-	dh_testroot
-	rm -f build-stamp
-	[ ! -f Makefile ] || $(MAKE) distclean
-	dh_clean Makefile config.log config.status
-
-install: build
-	dh_testdir
-	dh_testroot
-	dh_clean -k
-	dh_installdirs usr/bin usr/share/man/man1
-	$(MAKE) DESTDIR=$(CURDIR)/debian/isync install
-	rm -r $(CURDIR)/debian/isync/usr/share/doc
-	mv $(CURDIR)/debian/isync/usr/bin/get-cert $(CURDIR)/debian/isync/usr/bin/mbsync-get-cert
-
-binary-indep: build install
-
-binary-arch: build install
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs ChangeLog
-	dh_installdocs AUTHORS NEWS README TODO
-	dh_installexamples src/mbsyncrc.sample src/compat/isyncrc.sample
-	dh_installman
-	dh_strip
-	dh_compress
-	dh_fixperms
-	dh_installdeb
-	dh_shlibdeps
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install
+%:
+	dh $@ --with=autoreconf
+
+override_dh_auto_install:
+	dh_auto_install
+	mv $(CURDIR)/debian/isync/usr/bin/get-cert \
+	   $(CURDIR)/debian/isync/usr/bin/mbsync-get-cert
+	$(RM) $(CURDIR)/debian/isync/usr/share/doc/isync/ChangeLog

+ 1 - 0
debian/source/format

@@ -0,0 +1 @@
+3.0 (quilt)

+ 1 - 1
debian/watch

@@ -1,2 +1,2 @@
 version=3
 version=3
-http://sf.net/isync/ isync-(.*)\.tar\.gz debian uupdate
+http://sf.net/isync/ isync-(.*)\.tar\.gz

+ 6 - 0
src/common.h

@@ -54,6 +54,12 @@ typedef unsigned int uint;
 # define ATTR_PACKED(ref)
 # define ATTR_PACKED(ref)
 #endif
 #endif
 
 
+#if __GNUC__ >= 7
+# define FALLTHROUGH __attribute__((fallthrough));
+#else
+# define FALLTHROUGH
+#endif
+
 #ifdef __GNUC__
 #ifdef __GNUC__
 # define INLINE __inline__
 # define INLINE __inline__
 #else
 #else

+ 3 - 2
src/compat/config.c

@@ -316,9 +316,10 @@ write_imap_server( FILE *fp, config_t *cfg )
 	if (cfg->pass)
 	if (cfg->pass)
 		fprintf( fp, "Pass %s\n", quotify( cfg->pass ) );
 		fprintf( fp, "Pass %s\n", quotify( cfg->pass ) );
 	fprintf( fp, "RequireCRAM %s\nRequireSSL %s\n"
 	fprintf( fp, "RequireCRAM %s\nRequireSSL %s\n"
-	             "UseSSLv2 %s\nUseSSLv3 %s\nUseTLSv1 %s\n",
+	             "UseSSLv2 %s\nUseSSLv3 %s\nUseTLSv1 %s\nUseTLSv1.1 %s\nUseTLSv1.2 %s\n",
 	             tb(cfg->require_cram), tb(cfg->require_ssl),
 	             tb(cfg->require_cram), tb(cfg->require_ssl),
-	             tb(cfg->use_sslv2), tb(cfg->use_sslv3), tb(cfg->use_tlsv1) );
+	             tb(cfg->use_sslv2), tb(cfg->use_sslv3),
+	             tb(cfg->use_tlsv1), tb(cfg->use_tlsv1), tb(cfg->use_tlsv1) );
 	if ((cfg->use_imaps || cfg->use_sslv2 || cfg->use_sslv3 || cfg->use_tlsv1) &&
 	if ((cfg->use_imaps || cfg->use_sslv2 || cfg->use_sslv3 || cfg->use_tlsv1) &&
 	    cfg->cert_file)
 	    cfg->cert_file)
 		fprintf( fp, "CertificateFile %s\n", quotify( cfg->cert_file ) );
 		fprintf( fp, "CertificateFile %s\n", quotify( cfg->cert_file ) );

+ 1 - 1
src/compat/isync.1

@@ -278,7 +278,7 @@ Should \fBisync\fR use SSLv3 for communication with the IMAP server over SSL?
 ..
 ..
 .TP
 .TP
 \fBUseTLSv1\fR \fIyes\fR|\fIno\fR
 \fBUseTLSv1\fR \fIyes\fR|\fIno\fR
-Should \fBisync\fR use TLSv1 for communication with the IMAP server over SSL?
+Should \fBisync\fR use TLSv1.x for communication with the IMAP server over SSL?
 (Default: \fIyes\fR)
 (Default: \fIyes\fR)
 ..
 ..
 .TP
 .TP

+ 6 - 0
src/compat/isync.h

@@ -34,6 +34,12 @@
 # define ATTR_PRINTFLIKE(fmt,var)
 # define ATTR_PRINTFLIKE(fmt,var)
 #endif
 #endif
 
 
+#if __GNUC__ >= 7
+# define FALLTHROUGH __attribute__((fallthrough));
+#else
+# define FALLTHROUGH
+#endif
+
 typedef struct config {
 typedef struct config {
 	struct config *next;
 	struct config *next;
 
 

+ 4 - 4
src/compat/main.c

@@ -64,14 +64,14 @@ struct option Opts[] = {
 };
 };
 #endif
 #endif
 
 
-static void
+static void ATTR_NORETURN
 version( void )
 version( void )
 {
 {
 	puts( PACKAGE " " VERSION );
 	puts( PACKAGE " " VERSION );
 	exit( 0 );
 	exit( 0 );
 }
 }
 
 
-static void
+static void ATTR_NORETURN
 usage( int code )
 usage( int code )
 {
 {
 	fputs(
 	fputs(
@@ -194,13 +194,13 @@ main( int argc, char **argv )
 		switch (i) {
 		switch (i) {
 		case 'W':
 		case 'W':
 			outconfig = optarg;
 			outconfig = optarg;
-			/* plopp */
+			FALLTHROUGH
 		case 'w':
 		case 'w':
 			writeout = 1;
 			writeout = 1;
 			break;
 			break;
 		case 'l':
 		case 'l':
 			list = 1;
 			list = 1;
-			/* plopp */
+			FALLTHROUGH
 		case 'a':
 		case 'a':
 			all = 1;
 			all = 1;
 			break;
 			break;

+ 4 - 4
src/drv_imap.c

@@ -3115,7 +3115,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
 				arg += 6;
 				arg += 6;
 				server->ssl_type = SSL_IMAPS;
 				server->ssl_type = SSL_IMAPS;
 				if (server->sconf.ssl_versions == -1)
 				if (server->sconf.ssl_versions == -1)
-					server->sconf.ssl_versions = SSLv2 | SSLv3 | TLSv1;
+					server->sconf.ssl_versions = SSLv2 | SSLv3 | TLSv1 | TLSv1_1 | TLSv1_2;
 			} else
 			} else
 #endif
 #endif
 			if (starts_with( arg, -1, "imap:", 5 ))
 			if (starts_with( arg, -1, "imap:", 5 ))
@@ -3285,7 +3285,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
 #ifdef HAVE_LIBSSL
 #ifdef HAVE_LIBSSL
 		if ((use_sslv2 & use_sslv3 & use_tlsv1 & use_tlsv11 & use_tlsv12) != -1 || use_imaps >= 0 || require_ssl >= 0) {
 		if ((use_sslv2 & use_sslv3 & use_tlsv1 & use_tlsv11 & use_tlsv12) != -1 || use_imaps >= 0 || require_ssl >= 0) {
 			if (server->ssl_type >= 0 || server->sconf.ssl_versions >= 0) {
 			if (server->ssl_type >= 0 || server->sconf.ssl_versions >= 0) {
-				error( "%s '%s': The deprecated UseSSL*, UseTLS*, UseIMAPS, and RequireSSL options are mutually exlusive with SSLType and SSLVersions.\n", type, name );
+				error( "%s '%s': The deprecated UseSSL*, UseTLS*, UseIMAPS, and RequireSSL options are mutually exclusive with SSLType and SSLVersions.\n", type, name );
 				cfg->err = 1;
 				cfg->err = 1;
 				return 1;
 				return 1;
 			}
 			}
@@ -3313,14 +3313,14 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
 			}
 			}
 		} else {
 		} else {
 			if (server->sconf.ssl_versions < 0)
 			if (server->sconf.ssl_versions < 0)
-				server->sconf.ssl_versions = TLSv1; /* Most compatible and still reasonably secure. */
+				server->sconf.ssl_versions = TLSv1 | TLSv1_1 | TLSv1_2;
 			if (server->ssl_type < 0)
 			if (server->ssl_type < 0)
 				server->ssl_type = server->sconf.tunnel ? SSL_None : SSL_STARTTLS;
 				server->ssl_type = server->sconf.tunnel ? SSL_None : SSL_STARTTLS;
 		}
 		}
 #endif
 #endif
 		if (require_cram >= 0) {
 		if (require_cram >= 0) {
 			if (server->auth_mechs) {
 			if (server->auth_mechs) {
-				error( "%s '%s': The deprecated RequireCRAM option is mutually exlusive with AuthMech.\n", type, name );
+				error( "%s '%s': The deprecated RequireCRAM option is mutually exclusive with AuthMech.\n", type, name );
 				cfg->err = 1;
 				cfg->err = 1;
 				return 1;
 				return 1;
 			}
 			}

+ 3 - 3
src/main.c

@@ -52,14 +52,14 @@ int new_total[2], new_done[2];
 int flags_total[2], flags_done[2];
 int flags_total[2], flags_done[2];
 int trash_total[2], trash_done[2];
 int trash_total[2], trash_done[2];
 
 
-static void
+static void ATTR_NORETURN
 version( void )
 version( void )
 {
 {
 	puts( PACKAGE " " VERSION );
 	puts( PACKAGE " " VERSION );
 	exit( 0 );
 	exit( 0 );
 }
 }
 
 
-static void
+static void ATTR_NORETURN
 usage( int code )
 usage( int code )
 {
 {
 	fputs(
 	fputs(
@@ -599,7 +599,7 @@ main( int argc, char **argv )
 			goto cop;
 			goto cop;
 		case 'F':
 		case 'F':
 			cops |= XOP_PULL|XOP_PUSH;
 			cops |= XOP_PULL|XOP_PUSH;
-			/* fallthrough */
+			FALLTHROUGH
 		case '0':
 		case '0':
 			ops[M] |= XOP_HAVE_TYPE;
 			ops[M] |= XOP_HAVE_TYPE;
 			break;
 			break;

+ 2 - 2
src/mbsync.1

@@ -368,8 +368,8 @@ right after connecting the secure IMAP port 993.
 Select the acceptable SSL/TLS versions.
 Select the acceptable SSL/TLS versions.
 Use of SSLv2 is strongly discouraged for security reasons, but might be the
 Use of SSLv2 is strongly discouraged for security reasons, but might be the
 only option on some very old servers.
 only option on some very old servers.
-Generally, the newest TLS version is recommended, but as this confuses some
-servers, \fBTLSv1\fR is the default.
+Use old versions only when the server has problems with newer ones.
+(Default: [\fBTLSv1\fR] [\fBTLSv1.1\fR] [\fBTLSv1.2\fR]).
 ..
 ..
 .TP
 .TP
 \fBSystemCertificates\fR \fByes\fR|\fBno\fR
 \fBSystemCertificates\fR \fByes\fR|\fBno\fR

+ 1 - 1
src/socket.c

@@ -72,7 +72,7 @@ ssl_return( const char *func, conn_t *conn, int ret )
 		return ret;
 		return ret;
 	case SSL_ERROR_WANT_WRITE:
 	case SSL_ERROR_WANT_WRITE:
 		conf_notifier( &conn->notify, POLLIN, POLLOUT );
 		conf_notifier( &conn->notify, POLLIN, POLLOUT );
-		/* fallthrough */
+		FALLTHROUGH
 	case SSL_ERROR_WANT_READ:
 	case SSL_ERROR_WANT_READ:
 		return 0;
 		return 0;
 	case SSL_ERROR_SYSCALL:
 	case SSL_ERROR_SYSCALL: