- update to 1.5.0

* Changed default config & state locations to follow the XDG basedir spec
  * Added support for IMAP mailbox names with non-ASCII characters
  * Added support for Maildir Paths with suffixes (not ending with a slash)
  * Made the Channel side to expire with MaxMessages configurable
  * MaxMessages and MaxSize can be used together now
  * The unfiltered list of mailboxes in each Store can be printed now
  * A proper summary is now printed prior to exiting.
  * Added support for mirroring deletions more accurately; option ExpungeSolo
  * Added new sync operation 'Old' to retry previously skipped messages
  * Added --ext-exit option to indicate with the exit code whether Stores
    were modified
  * Added support for the LITERAL- IMAP extension, which improves upload
    performance with f.ex. GMail somewhat
  * Improved error handling when attempting to store too big messages
  * Malformed messages with incomplete headers will be propagated now
  * A notice is now emitted if the server does not support race-free Trash
  * Improved checking for invalid command lines
  * Options not supported due to the build configuration are still recognized
    now, to make error messages more helpful
  * he progress indicator is rate-limited now
  * Added --dry-run option
  * Various improvements to the debugging output
  * Vastly extended the autotest suite
  * The reference point for relative local paths in the configuration file
    is now the file's containing directory
  * Maildir Path cannot be nested into Inbox anymore (this was never documented)
  * Renamed the ReNew/--renew/-N options to Upgrade/--upgrade/-u and
    Delete/--delete/-d to Gone/--gone/-g
  * Superseded SSLVersions option with TLSVersions, and disabled TLS v1.0

OBS-URL: https://build.opensuse.org/package/show/server:mail/isync?expand=0&rev=38
This commit is contained in:
Dirk Stoecker 2024-11-07 16:44:14 +00:00 committed by Git OBS Bridge
commit 8ed5a17581
10 changed files with 767 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
isync-1.4.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7c3273894f22e98330a330051e9d942fd9ffbc02b91952c2f1896a5c37e700ff
size 340544

16
isync-1.4.4.tar.gz.asc Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEEGRXuHNWWaTUD1ZFb1RH+V0AHYUFAmGp+FAACgkQb1RH+V0A
HYW8MQ/+LxAsK9VD9YWHUGGmA9tX08GRhLj08QY2LlVAmxqT27Si3FiIr+lqVT8I
wx7PgP96zDle2lhqZfo8MFMjYuhCqk3wUjKJU9ShJGy+T4S+UrW4wjs8C2gVf6OW
w6givSxEMdBOWCWjFFVhbIDEhFM+WJU11nrb0sE/sC4ayTkCZgOX6SObweR//B/s
7qADqVyycSNjDnc/oSpqv8p3PkUclnPyk9roAhov6RXSL9j4SUklc/djHwvv5rg/
Llz6lDeh7S2geygad3weG0y5cLjSDBUSyDBA+UsAR5amE5Frkqi4v3xb2Qj/nzNP
Gn99pokn2A67NLpp07U5ZFmuL4zmAHWcTCdUjbPF0QYBLVeF6rDLxtYeYhzk4keO
TWEDKpoFgY5Lc5J9ytf0KS1ie6DnJ0+TLaUf0n+6Kuc0C1bThIJzdJMhM2txcckk
b27joitFtscbGh4mg+RRroYfXkCNM5JtEeZdlim7v+UlAnQH73mQEqVs9FWK0GKC
K5cBvEWWdGmeoF6tlcuWUgrFEBk1JESI6WAKhJzJr9jNC9C3u8E2LlXfYtV39YgU
/0T4UsaL1WH7ENe8n66/jjYUCn5xmsu6IEg/+c8yAEzUnQ3GN9+m5kAyb8PuUE0i
ao4MPBdCmzjm+I78b4L4ny2591kzewe8R7IXFyF+bHA3fcT9KC8=
=1mWA
-----END PGP SIGNATURE-----

3
isync-1.5.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0c81e109387bf279da161453103399e77946afecf5c51f9413c5e773557f78d
size 412925

16
isync-1.5.0.tar.gz.asc Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEEGRXuHNWWaTUD1ZFb1RH+V0AHYUFAmasu5kACgkQb1RH+V0A
HYW8yg//dOjIt2Eqql2LJtUFstrofPiomx8jQzI0o3CfCLkRW/f4+cwL+VbdFZgu
1ihYE6YrFxsf1Ksf18KMbKkvN0VVIpfG8WRrhJoQHFt7a1TXsprH1US1YJ8cXK8G
9qwHfr8qxbiX0hY8nhV6nfV8wvj2aB7XZevjkT6/RvTvZdBDWYj7cFu1htP7JpLp
54pkkD9u1wFP/Omtt8F3wAChzs6cVV1ndEXPnFPBYyTXEkT3GlXTuUsqQAZOKtdu
R/VQVy2dhpJGmqh4a5aUbfWTKvST+Xq8qwxaY8u4hVoEzuk/usyROzsSgWz8ZMVv
KbD3QU/lmJLBPUxTAKBWNb5iduGmshMIFyJ0Lm2oFlAWp5yHLFFwDZ1EBBfRyuIg
DBI4e2DwbJcUbsz+WqfKlTJIqwVfkw7prCQeYQ56AIRirYWVT1tsxfN3BIudVkA+
hoXb8+NPqoWSITOUHKN7SBHlDk1zjQ+3vLm3a69FJHjEFDDHaE4TXTwV9N25eNEl
GBJ1s2P7SzwjHEIrRPH5HIdIJrqAoErxVgdYHaVgfAh+LiPGwpaaWaPxQEhAgAvp
R3/VTTOlGUWSU/BcIG822WUS0yqkBIs6i7jJJYF+cS6ziQPbEoeQi29WQvizSTjp
Ywi0i7wP+n6VaLGiWpYvchgzaFDpRzGuXPgq9hnDwyWIa4Tn8wg=
=0mfN
-----END PGP SIGNATURE-----

309
isync.changes Normal file
View File

@ -0,0 +1,309 @@
-------------------------------------------------------------------
Wed Oct 9 09:28:32 UTC 2024 - Richard Rahl <rrahl0@opensuse.org>
- update to 1.5.0
* Changed default config & state locations to follow the XDG basedir spec
* Added support for IMAP mailbox names with non-ASCII characters
* Added support for Maildir Paths with suffixes (not ending with a slash)
* Made the Channel side to expire with MaxMessages configurable
* MaxMessages and MaxSize can be used together now
* The unfiltered list of mailboxes in each Store can be printed now
* A proper summary is now printed prior to exiting.
* Added support for mirroring deletions more accurately; option ExpungeSolo
* Added new sync operation 'Old' to retry previously skipped messages
* Added --ext-exit option to indicate with the exit code whether Stores
were modified
* Added support for the LITERAL- IMAP extension, which improves upload
performance with f.ex. GMail somewhat
* Improved error handling when attempting to store too big messages
* Malformed messages with incomplete headers will be propagated now
* A notice is now emitted if the server does not support race-free Trash
* Improved checking for invalid command lines
* Options not supported due to the build configuration are still recognized
now, to make error messages more helpful
* he progress indicator is rate-limited now
* Added --dry-run option
* Various improvements to the debugging output
* Vastly extended the autotest suite
* The reference point for relative local paths in the configuration file
is now the file's containing directory
* Maildir Path cannot be nested into Inbox anymore (this was never documented)
* Renamed the ReNew/--renew/-N options to Upgrade/--upgrade/-u and
Delete/--delete/-d to Gone/--gone/-g
* Superseded SSLVersions option with TLSVersions, and disabled TLS v1.0
and v1.1 by default
* Renamed SSLType option to TLSType
* Placeholders will be now created for messages exceeding MaxSize even if they
are flagged on the source side
* Placeholder upgrades no longer pull flag updates along unless also requested
* New messages which we are about to expunge from the source side are not
propaged any more even if the target side would keep them
* Tunnel is now consistently assumed to be secure, so some warnings are gone
* Worked around "unexpected EOF" error messages at end of TLS connections;
affects f.ex. GMail
* Worked around protocol corruption issue with iCloud (mail.me.com)
* Fixed missing CAPABILITY command after logging in if the server does not
report updated capabilities automatically (affects f.ex. MS Exchange)
* Fixed CopyArrivalDate failing on some date strings
* Fixed propagation of new messages to non-UIDPLUS servers
* Fixed Timeout being ignored by DNS host resolution
* Fixed broken Tunnel potentially causing SIGPIPE
* Fixed Tunnel leaving behind zombie processes
* Fixed expunges not being propagated at all if the first run after they
occurred did not include --delete
* Fixed MaxMessages being exceeded when only --new was used
* Fixed messages being instantly expired despite being important when only
--new was used
* Trash-ing failures now prevent expunging and cause a non-zero exit code
* Fixed placeholders being needlessly trashed
* Fixed TrashNewOnly and TrashRemoteNew omitting messages for which only
a placeholder was synced
* Fixed TrashRemoteNew omitting messages which exceed MaxSize
* Fixed TrashRemoteNew not using race-free expunge
* Optimized some places with unnecessarily high CPU usage
* Fixed unnecessary network usage by non-selective uni-directional syncs when
no placeholders are present
* Fixed crash when Patterns yields nothing when built with new compilers
* Fixed crash when all flag propagations to a mailbox failed
* Fixed handling of errors during opening mailboxes
* Removed useless "lost track of ... messages" warnings when resuming after
an interruption
* Fixed many minor bugs in corner cases, mostly when resuming after
interruptions
- remove patch work-around-unexpected-EOF-error-messages-at-end-of-SSL-connections.patch
as upstream integrated the patch
-------------------------------------------------------------------
Mon Feb 27 01:47:06 UTC 2023 - Yifan Jiang <yfjiang@suse.com>
- Add patch work-around-unexpected-EOF-error-messages-at-end-of-SSL-connections.patch
* Some mail servers do not send a close notification
(SSL_shutdown()) before closing the TCP socket. This workaround
makes isync handles the situation more gracefully (boo#1208166).
-------------------------------------------------------------------
Wed Jan 5 09:19:39 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.4.4 (bsc#1193376, bsc#1192985, CVE-2021-3657, CVE-2021-44143):
* fixed CVE-2021-3657: multiple buffer overflows on excessively large
IMAP literals
* fixed CVE-2021-44143: buffer overflow on header-less messages
* fixed crash on certain malformed messages in Maildirs
* fixed somewhat spurious notice about conflicting changes on
messages marked as deleted
-------------------------------------------------------------------
Wed Aug 4 07:31:05 UTC 2021 - Dan Čermák <dcermak@suse.com>
- New upstream release 1.4.3
-------------------------------------------------------------------
Mon Jun 7 12:43:42 UTC 2021 - Dan Čermák <dcermak@suse.com>
- New upstream release 1.4.2
* This is a security update that fixes CVE-2021-3578
1.4.2:
- fixed CVE-2021-3578: possible remote code execution
- fixed crash on invalid CAPABILITY response code
- tolerate INBOX mis-casing in Path setting
1.4.1:
- fixed CVE-2021-20247
- fixed UIDVALIDITY change recovery potentially leading to data loss
- fixed spurious "unexpected FETCH response" errors with some servers
- worked around FastMail sending malformed PERMANENTFLAGS
-------------------------------------------------------------------
Sun Feb 28 10:54:30 UTC 2021 - Martin Hauke <mardnh@gmx.de>
- Update to version 1.3.5 (boo#1182488)
* This is a security release that fixes CVE-2021-20247.
- Update to version 1.3.4
This is a maintenance release that contains exactly one change:
* fixed regression in handling NAMESPACE 'INBOX.', introduced in
v1.3.2
-------------------------------------------------------------------
Wed Jan 6 14:38:47 UTC 2021 - Dirk Müller <dmueller@suse.com>
- fix homepage url
-------------------------------------------------------------------
Tue Aug 4 17:37:51 UTC 2020 - Martin Hauke <mardnh@gmx.de>
- Update to version 1.3.3
* Network timeout handling has been added.
* Support for proper Maildir++ and a Maildir sub-folder naming
style.
* without extra dots have been added.
* Support for TLS client certificates was added.
* Support for recovering from baseless UID validity changes was
added.
* The get-cert script was renamed to mbsync-get-cert.
-------------------------------------------------------------------
Wed Jul 8 11:19:38 UTC 2020 - Dan Čermák <dcermak@suse.com>
- Update to version 1.3.2
- increased PassCmd buffer size to accomodate XOAUTH2 tokens
- improved SSL error handling
- improved resilience to IMAP server bugs relating to FETCH
- fixed handling of non-uppercase IMAP iNbOx spellings
- fixed timeouts while uploading big messages
- fixed parsing of NIL hierarchy delimiters in IMAP LIST responses
- fixed crash when using Tunnel in an IPv6-enabled build
- fixed libcrypto detection from OpenSSL 1.1+ without pkg-config
- made --debug-crash work with Yama ptrace protection
- use more scriptlets
- don't include COPYING twice and drop TODO from %doc
- reenable gpg source verification
-------------------------------------------------------------------
Wed Feb 26 07:21:40 UTC 2020 - Michal Hrusecky <michal.hrusecky@opensuse.org>
- drop sources signature as there is no published key to verify them
-------------------------------------------------------------------
Thu Jan 16 10:57:17 UTC 2020 - Michal Hrusecky <michal.hrusecky@opensuse.org>
- Update to version 1.3.1
- SSL now uses SNI, which for example GMail requires
- fixed fallbacks for missing UIDPLUS extension (with e.g. DavMail)
- fixed UIDVALIDITY recovery with really long Message-id headers
- fixed GSSAPI authentication with Kerberos
- fixed support for IMAP servers which do not sort search results (e.g.,
poczta.o2.pl)
- fixed CopyArrivalDate on platforms without glibc
- fixed useless SASL warnings with certain plugins
- the perl 5.14 requirement is now made explicit
- improved OpenBSD support
- fixed a bunch of compiler warnings
-------------------------------------------------------------------
Fri Dec 29 15:39:41 UTC 2017 - crrodriguez@opensuse.org
- Update to version 1.3.0, fixes build against openSSL
1.1.0, see https://sourceforge.net/projects/isync/files/isync/1.3.0
for the full list of changes
-------------------------------------------------------------------
Thu Jun 2 09:53:37 UTC 2016 - sleep_walker@opensuse.org
- add COPYING README AUTHORS ChangeLog to the package
-------------------------------------------------------------------
Fri May 6 22:15:06 UTC 2016 - mpluskal@suse.com
- Cleanup spec file with spec-cleaner
- Use pkgconfig() style dependencies
- Update dependencies
* Enable sasl
-------------------------------------------------------------------
Mon Nov 16 18:03:54 UTC 2015 - sleep_walker@opensuse.org
- bump to 1.2.1
- fixed IPv6-enabled builds crashing upon host name resolution failure
- fixed updating Maildir flags crashing on OpenBSD
- fixed deadlocks with NFS home directories
- fixed SASL authentication with GSS-API
- fixed messages being uploaded again and again with some servers
- fixed duplicate mailboxes with IMAP NAMESPACE "INBOX."
- fixed some problems in the IMAP command submission code
- fixed build with static libdb, libnsl, and libsocket
- the dependencies on Berkeley DB and zlib (and the features they enable) can be explicitly disabled now
- it is now possible to nest a Maildir Store's Path into its Inbox
- fixed -DN not implying -Dn
- clean the spec with spec-cleaner
- add isync.keyring
-------------------------------------------------------------------
Mon Jul 27 07:02:17 UTC 2015 - sleep_walker@opensuse.org
- bump to 1.2.0
Changes:
The 'isync' compatibility wrapper is now deprecated.
An IMAP Path/NAMESPACE rooted in INBOX won't be handled specially
any more. This means that some Patterns may need adjustment.
The default output is a lot less verbose now.
The meanings of the -V and -D options changed significantly.
The SSL/TLS configuration has been re-designed. SSL is now
explicitly enabled or disabled - "use SSL if available" is gone.
Notice: Tunnels are assumed to be secure and thus default to no SSL.
Support for SASL (flexible authentication) has been added.
Support for Windows file systems has been added.
Support for compressed data transfer has been added.
Folder deletions can be propagated now.
-------------------------------------------------------------------
Thu Jan 23 11:56:13 UTC 2014 - sleep_walker@suse.cz
- examples are installed automaticaly - remove manual copying from
spec file
-------------------------------------------------------------------
Thu Jan 23 11:14:48 UTC 2014 - sleep_walker@suse.cz
- license fix
-------------------------------------------------------------------
Thu Jan 23 11:04:33 UTC 2014 - sleep_walker@suse.cz
- bump to 1.1.0
- drop isync-1.0.1_imaphierarchy.patch
-------------------------------------------------------------------
Fri Aug 24 09:29:54 UTC 2012 - sleep_walker@suse.cz
- update to 1.0.5
-------------------------------------------------------------------
Thu Dec 16 13:01:08 UTC 2010 - puzel@novell.com
- update to version 1.0.4
- fix some rpmlint warnings
- drop isync-1.0.1_missing_sentinel.patch (in upstream)
-------------------------------------------------------------------
Sun Jan 21 22:54:15 CET 2007 - mrueckert@suse.de
- update to version 1.0.3:
- new option UseIMAPS to allow use of Tunnel-ed IMAPS servers
without providing a dummy Host.
- make config parsing more robust.
- work around glibc printf bug.
- fix crash with AltMap UID scheme.
- compat wrapper: put INBOX under Maildir.
-------------------------------------------------------------------
Fri May 19 12:00:00 CET 2006 - mrueckert@suse.de
- update to 1.0.2
-------------------------------------------------------------------
Mon Mar 20 12:00:00 CET 2006 - mrueckert@suse.de
- build debuginfo package
- added patch for missing sentinel
-------------------------------------------------------------------
Sun Feb 19 12:00:00 CET 2006 - mrueckert@suse.de
- added isync-1.0.1_imaphierarchy.patch
* without the patch you cant mirror imap hierarchies
when using "Patterns"
-------------------------------------------------------------------
Sun Feb 19 12:00:00 CET 2006 - mrueckert@suse.de
- Initial package of version 1.0.1

253
isync.keyring Normal file
View File

@ -0,0 +1,253 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: Hostname:
Version: Hockeypuck 2.2
xsFNBFy/ECsBEADTYGZ1tWK7vhVlcy2eafU6SPhHWpwZ2hdi1QBCOSHGuceD6Vt5
1igqdH7/mNfoQBpDcuHS1qy13maG2wCXJ9QBy81TFde7gl3s131RC/l1IjH0xPQN
ZxCv/22M7lULZTvEE4prqHMPh1vwatxiloCUG3s8y1+aCQ5TLLNW+6HtFGiZgk64
z4/D6Wn6fWs7wHI5EYS6dTvmSXqxldtdf4yiekCC+LBWbYQ6MKsuxcACXGHwRT0Q
h+oN9jaq1JuFbYSPSn1G+Li4aMCKrUFoFlBBLP4JqjSyX10Oiw7xC+YtoBFhzyrl
XmceOK3CFfjxgDnfg4fl8tKFM6CinwFaNqZIDyJ+xgjhmk07fTVhEUMp8ywWZayU
lKaoGbOBUCvljchTY39ArlS2g44wZQy//u2kU4fO9x49cZ9Gx1EWnw4LHJv+97iL
b/DgGgwJD5eRi0XXtznPzkdZZmXdqo37mpUEbfWZNaxp8RWWdhtpxCgiZ2T0bCDo
mm9hK9xKZCB+28BPqrAvJpvDb+fpv2zbnOmlyWiv3Low9q/PPtA0ooV0tV3CL7GX
CbUa4sNwtTkx8PLg2fEiyFdzdkwsBR6TJ+UnWtMt8PATL5e7Ybt7AeFDY5Cyis7k
ZjkgrLgXG13EW3UsNtt8eUyD1R2o9cp9cXJAMr2HjC7eqlzWdNtbNGMLxQARAQAB
zS5Pc3dhbGQgQnVkZGVuaGFnZW4gPG9zd2FsZC5idWRkZW5oYWdlbkBnbXguZGU+
wsG7BBMBCgBlAhsDBAsJCAcFFQoJCAsFFgMCAQACHgECF4ACGQEkGGhrcHM6Ly9o
a3BzLnBvb2wuc2tzLWtleXNlcnZlcnMubmV0FiEEY7/QN8rXHo3/Ouo6wXcU8I0b
27oFAmCpMdYFCQXLVSsACgkQwXcU8I0b27pFoA/+Lqjc0Y9aX4ZVJBYV6XNYBZsB
Le0QsHni0+QsJ7+P4NolDQASf3/VKvHBGHZ3JSZVM9/Zvgn3hKolaNVGgZwro0Ih
2fgIM0M3t1NrjiXV6H+hpE1CZvfhOYstfzL66LcH8+NXhmdITiaM4qEK/37luKhd
nzVtnXNfPnR5BjTMbezhDwbgXSyRM+21EIsqrT4XpkUa8b+WZd7twnNy2bnDTIFC
HFffSfK55fNdRbI8k2WZ27oWXpdrzi90gtnVS3jxqYwe082BCsEkwif5UmeJjkUo
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
=PPFF
-----END PGP PUBLIC KEY BLOCK-----

67
isync.spec Normal file
View File

@ -0,0 +1,67 @@
#
# spec file for package isync
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: isync
Version: 1.5.0
Release: 0
Summary: Utility to synchronize IMAP mailboxes with local maildir folders
License: GPL-2.0-only
URL: https://isync.sourceforge.io/
Source: https://prdownloads.sourceforge.net/isync/%{name}-%{version}.tar.gz
Source1: https://prdownloads.sourceforge.net/isync/%{name}-%{version}.tar.gz.asc
Source2: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x63bfd037cad71e8dff3aea3ac17714f08d1bdbba#/%{name}.keyring
BuildRequires: db-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(libsasl2)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(zlib)
%description
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.
Synchronization is based on unique message identifiers (UIDs), so no
identification conflicts can occur (as opposed to some other mail
synchronizers). Synchronization state is kept in one local text file per
mailbox pair; multiple replicas of a mailbox can be maintained.
%prep
%autosetup -p1
%build
%configure
%make_build
%install
%make_install docdir=%{_docdir}/%{name}
%files
%license COPYING
%doc README AUTHORS ChangeLog NEWS
%{_bindir}/mbsync-get-cert
%{_bindir}/mbsync
%{_bindir}/mdconvert
%exclude %{_docdir}/%{name}/TODO
%{_docdir}/%{name}/examples/*
%dir %{_docdir}/%{name}/examples
%{_mandir}/man1/mbsync.1%{?ext_man}
%{_mandir}/man1/mdconvert.1%{?ext_man}
%changelog

View File

@ -0,0 +1,76 @@
From b6c36624f04cd388873785c0631df3f2f9ac4bf0 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <ossi@users.sf.net>
Date: Mon, 6 Jun 2022 11:55:37 +0200
Subject: [PATCH] work around "unexpected EOF" error messages at end of SSL
connections
gmail apparently doesn't send a close notification (SSL_shutdown())
before closing the TCP socket.
---
src/drv_imap.c | 7 +++++--
src/socket.c | 9 +++++++++
src/socket.h | 1 +
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/drv_imap.c b/src/drv_imap.c
index fb8d165..6286045 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -1620,6 +1620,7 @@ imap_socket_read( void *aux )
error( "IMAP error: unexpected BYE response: %s\n", cmd );
/* We just wait for the server to close the connection now. */
ctx->expectEOF = 1;
+ socket_expect_eof( &ctx->conn );
} else {
/* We still need to wait for the LOGOUT's tagged OK. */
}
@@ -1882,10 +1883,12 @@ static void
imap_cleanup_p2( imap_store_t *ctx,
imap_cmd_t *cmd ATTR_UNUSED, int response )
{
- if (response == RESP_NO)
+ if (response == RESP_NO) {
imap_cancel_store( &ctx->gen );
- else if (response == RESP_OK)
+ } else if (response == RESP_OK) {
ctx->expectEOF = 1;
+ socket_expect_eof( &ctx->conn );
+ }
}
/******************* imap_open_store *******************/
diff --git a/src/socket.c b/src/socket.c
index ac3c847..892cece 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -810,6 +810,15 @@ socket_expect_activity( conn_t *conn, int expect )
conf_wakeup( &conn->fd_timeout, expect ? conn->conf->timeout : -1 );
}
+void
+socket_expect_eof( conn_t *sock )
+{
+#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF // implies HAVE_LIBSSL
+ if (sock->ssl)
+ SSL_set_options( sock->ssl, SSL_OP_IGNORE_UNEXPECTED_EOF );
+#endif
+}
+
int
socket_read( conn_t *conn, char *buf, uint len )
{
diff --git a/src/socket.h b/src/socket.h
index 5b1edd0..af679aa 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -142,6 +142,7 @@ void socket_start_tls(conn_t *conn, void (*cb)( int ok, void *aux ) );
void socket_start_deflate( conn_t *conn );
void socket_close( conn_t *sock );
void socket_expect_activity( conn_t *sock, int expect );
+void socket_expect_eof( conn_t *sock );
int socket_read( conn_t *sock, char *buf, uint len ); /* never waits */
char *socket_read_line( conn_t *sock ); /* don't free return value; never waits */
typedef enum { KeepOwn = 0, GiveOwn } ownership_t;
--
2.38.0