From 8ed5a17581eed920d779f31a83f678d05c69574ecfcaf50b6d0b61aff5414a36 Mon Sep 17 00:00:00 2001 From: Dirk Stoecker Date: Thu, 7 Nov 2024 16:44:14 +0000 Subject: [PATCH] - 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 --- .gitattributes | 23 ++ .gitignore | 1 + isync-1.4.4.tar.gz | 3 + isync-1.4.4.tar.gz.asc | 16 + isync-1.5.0.tar.gz | 3 + isync-1.5.0.tar.gz.asc | 16 + isync.changes | 309 ++++++++++++++++++ isync.keyring | 253 ++++++++++++++ isync.spec | 67 ++++ ...r-messages-at-end-of-SSL-connections.patch | 76 +++++ 10 files changed, 767 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 isync-1.4.4.tar.gz create mode 100644 isync-1.4.4.tar.gz.asc create mode 100644 isync-1.5.0.tar.gz create mode 100644 isync-1.5.0.tar.gz.asc create mode 100644 isync.changes create mode 100644 isync.keyring create mode 100644 isync.spec create mode 100644 work-around-unexpected-EOF-error-messages-at-end-of-SSL-connections.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/isync-1.4.4.tar.gz b/isync-1.4.4.tar.gz new file mode 100644 index 0000000..75b9a48 --- /dev/null +++ b/isync-1.4.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c3273894f22e98330a330051e9d942fd9ffbc02b91952c2f1896a5c37e700ff +size 340544 diff --git a/isync-1.4.4.tar.gz.asc b/isync-1.4.4.tar.gz.asc new file mode 100644 index 0000000..0e6f2f4 --- /dev/null +++ b/isync-1.4.4.tar.gz.asc @@ -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----- diff --git a/isync-1.5.0.tar.gz b/isync-1.5.0.tar.gz new file mode 100644 index 0000000..cfb3a90 --- /dev/null +++ b/isync-1.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0c81e109387bf279da161453103399e77946afecf5c51f9413c5e773557f78d +size 412925 diff --git a/isync-1.5.0.tar.gz.asc b/isync-1.5.0.tar.gz.asc new file mode 100644 index 0000000..2e44222 --- /dev/null +++ b/isync-1.5.0.tar.gz.asc @@ -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----- diff --git a/isync.changes b/isync.changes new file mode 100644 index 0000000..f6a799e --- /dev/null +++ b/isync.changes @@ -0,0 +1,309 @@ +------------------------------------------------------------------- +Wed Oct 9 09:28:32 UTC 2024 - Richard Rahl + +- 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 + +- 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 + +- 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 + +- New upstream release 1.4.3 + +------------------------------------------------------------------- +Mon Jun 7 12:43:42 UTC 2021 - Dan Čermák + +- 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 + +- 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 + +- fix homepage url + +------------------------------------------------------------------- +Tue Aug 4 17:37:51 UTC 2020 - Martin Hauke + +- 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 + +- 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 + +- drop sources signature as there is no published key to verify them + +------------------------------------------------------------------- +Thu Jan 16 10:57:17 UTC 2020 - Michal Hrusecky + +- 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 + diff --git a/isync.keyring b/isync.keyring new file mode 100644 index 0000000..02c1ec3 --- /dev/null +++ b/isync.keyring @@ -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----- diff --git a/isync.spec b/isync.spec new file mode 100644 index 0000000..7d2ca23 --- /dev/null +++ b/isync.spec @@ -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 diff --git a/work-around-unexpected-EOF-error-messages-at-end-of-SSL-connections.patch b/work-around-unexpected-EOF-error-messages-at-end-of-SSL-connections.patch new file mode 100644 index 0000000..5bcee10 --- /dev/null +++ b/work-around-unexpected-EOF-error-messages-at-end-of-SSL-connections.patch @@ -0,0 +1,76 @@ +From b6c36624f04cd388873785c0631df3f2f9ac4bf0 Mon Sep 17 00:00:00 2001 +From: Oswald Buddenhagen +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 +