]> code.delx.au - offlineimap/log
offlineimap
15 years agoPrepping 6.0.3 debian/6.0.3
John Goerzen [Wed, 13 Aug 2008 05:05:17 +0000 (00:05 -0500)]
Prepping 6.0.3

15 years agomake the trash and spam folder names in Gmail accounts configurable
Henning Glawe [Tue, 12 Aug 2008 23:19:38 +0000 (01:19 +0200)]
make the trash and spam folder names in Gmail accounts configurable

15 years agotask_done wasn't in Python before 2.5
John Goerzen [Tue, 12 Aug 2008 01:38:33 +0000 (20:38 -0500)]
task_done wasn't in Python before 2.5

15 years agoMerge branch 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offlineimap
John Goerzen [Fri, 8 Aug 2008 18:08:08 +0000 (13:08 -0500)]
Merge branch 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offlineimap

15 years agoFix a bug preventing the pid file from being empty.
Ben Willard [Fri, 8 Aug 2008 01:16:36 +0000 (21:16 -0400)]
Fix a bug preventing the pid file from being empty.

Convert os.getpid() to a string before writing it to the pid file in
order to avoid generating an empty pid file.

15 years agoClarified and highlighted the need to set maxsyncaccounts to sync more
John Goerzen [Thu, 7 Aug 2008 08:51:00 +0000 (03:51 -0500)]
Clarified and highlighted the need to set maxsyncaccounts to sync more
than 1 account

15 years agoRemoved debug statements
John Goerzen [Tue, 5 Aug 2008 05:07:26 +0000 (00:07 -0500)]
Removed debug statements

15 years agoYet another Python threading workaround.
John Goerzen [Tue, 5 Aug 2008 05:05:29 +0000 (00:05 -0500)]
Yet another Python threading workaround.

module threading should be taken out back and shot.

Condition.wait() is a busywait loop that has negative implications for
battery consumption on laptops.

Queue.get() in blocking mode blocks SIGINT from being delivered.

Argh, argh, argh.

Closes: #493801.
15 years agoUpdate changelog debian/6.0.2
John Goerzen [Sat, 2 Aug 2008 22:44:46 +0000 (17:44 -0500)]
Update changelog

15 years agoBump version to 6.0.2
John Goerzen [Sat, 2 Aug 2008 22:44:20 +0000 (17:44 -0500)]
Bump version to 6.0.2

15 years agoRework keepalive to use time.sleep() instead of event.wait()
John Goerzen [Sat, 2 Aug 2008 22:04:32 +0000 (17:04 -0500)]
Rework keepalive to use time.sleep() instead of event.wait()

This should improve power-management abilities some more

The catch is that we can't wait any longer for the kathread to
terminate.  We were waiting for this in some cases.  This is probably
not a big deal.

fixes deb#434074
fixes #66

15 years agoUpdate changelog debian/6.0.1
John Goerzen [Sat, 2 Aug 2008 20:39:49 +0000 (15:39 -0500)]
Update changelog

15 years agoEliminate one more fsync
John Goerzen [Sat, 2 Aug 2008 20:31:43 +0000 (15:31 -0500)]
Eliminate one more fsync

15 years agoUpdate for 6.0.1
John Goerzen [Sat, 2 Aug 2008 20:18:22 +0000 (15:18 -0500)]
Update for 6.0.1

15 years agoBump version to 6.0.1
John Goerzen [Sat, 2 Aug 2008 20:13:43 +0000 (15:13 -0500)]
Bump version to 6.0.1

15 years agoFix syntax error in nofsync support
John Goerzen [Sat, 2 Aug 2008 20:11:23 +0000 (15:11 -0500)]
Fix syntax error in nofsync support

15 years agoRework threadutil to use Queue for simplification and power-friendliness
John Goerzen [Sat, 2 Aug 2008 20:10:11 +0000 (15:10 -0500)]
Rework threadutil to use Queue for simplification and power-friendliness

Removes code and should avoid weird Python situation that causes cpu
wakeups

fixes deb#434074
fixes #66

15 years agoAdded ability to disable fsync()
John Goerzen [Sat, 2 Aug 2008 19:55:08 +0000 (14:55 -0500)]
Added ability to disable fsync()

Passed config to LocalStatus and Maildir folders so they can look
up the fsync status

15 years agoMerge branches 'master' and 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offli...
John Goerzen [Sat, 2 Aug 2008 19:42:56 +0000 (14:42 -0500)]
Merge branches 'master' and 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offlineimap

15 years agoSlightly more debug info
John Goerzen [Sat, 2 Aug 2008 19:37:55 +0000 (14:37 -0500)]
Slightly more debug info

15 years agoNow create cur,new,tmp in '.' even if existsok is false
John Goerzen [Sat, 2 Aug 2008 19:34:51 +0000 (14:34 -0500)]
Now create cur,new,tmp in '.' even if existsok is false

Otherwise, there was a race where sometimes subfolders would get created
first in the sep = '.' scneario

fixes #64

15 years agoFix for keys with -1
John Goerzen [Wed, 16 Jul 2008 19:12:38 +0000 (14:12 -0500)]
Fix for keys with -1
fixes #83

15 years agoSmall doc grammar fix. fixes #74.
John Goerzen [Wed, 11 Jun 2008 20:23:12 +0000 (15:23 -0500)]
Small doc grammar fix.  fixes #74.

15 years agoAdd support for ssl client certificates
Mark Hymers [Fri, 23 May 2008 19:58:18 +0000 (14:58 -0500)]
Add support for ssl client certificates

  This patch adds sslclientcert and sslclientkey configuration
  options which are passed through to imaplib in order to allow
  the use of client certificates for authentication.

Tue Nov 13 14:44:17 CST 2007  Mark Hymers <mhy@debian.org>

15 years agoRevert "Initial stab at showing list of folders that aren't being synced"
John Goerzen [Tue, 20 May 2008 06:38:42 +0000 (01:38 -0500)]
Revert "Initial stab at showing list of folders that aren't being synced"

This reverts commit fa766b61bcf5dcc1f241c96521b56304a0e3ba11.

Not going to follow this path right now

15 years agoRevert "Checkpointing work on mailbox deletion"
John Goerzen [Tue, 20 May 2008 06:38:32 +0000 (01:38 -0500)]
Revert "Checkpointing work on mailbox deletion"

This reverts commit f58ebe390d281e6fe526e70451e2377b77f68183.

Not going to follow this path right now

15 years agoCheckpointing work on mailbox deletion
John Goerzen [Tue, 20 May 2008 06:38:15 +0000 (01:38 -0500)]
Checkpointing work on mailbox deletion

15 years agoInitial stab at showing list of folders that aren't being synced
John Goerzen [Tue, 20 May 2008 06:13:36 +0000 (01:13 -0500)]
Initial stab at showing list of folders that aren't being synced

This isn't working right yet because two accounts could sync into one
destination

15 years agoPoof, this is 6.0.0. debian/6.0.0
John Goerzen [Tue, 20 May 2008 05:01:51 +0000 (00:01 -0500)]
Poof, this is 6.0.0.

15 years agoPrepping 5.99.15; fixes: #63 debian/5.99.15
John Goerzen [Mon, 12 May 2008 14:03:08 +0000 (09:03 -0500)]
Prepping 5.99.15; fixes: #63

15 years agoFinally fix the stupid LocalStatus folder bug, I really hope!
John Goerzen [Sun, 11 May 2008 02:08:05 +0000 (21:08 -0500)]
Finally fix the stupid LocalStatus folder bug, I really hope!

Noted thie code:

    statusfolder =
    statusrepos.getfolder(remotefolder.getvisiblename().\
                                         replace(remoterepos.getsep(),
                                                 statusrepos.getsep()))

in accounts.py.  Should have been using the sep of the LocalStatus all
along.

refs deb#479798, #68

15 years agoPrepping 5.99.14
John Goerzen [Sat, 10 May 2008 01:44:19 +0000 (20:44 -0500)]
Prepping 5.99.14

15 years agoRevert some previous attempts at localstatus creation
John Goerzen [Tue, 6 May 2008 23:23:48 +0000 (18:23 -0500)]
Revert some previous attempts at localstatus creation

refs deb#479798

Reverts cf080844ac92df72db4a85d434b73f647ec51b95
and 031e018ead749faa8250282ef5d46cc68f326869

15 years agoBump to 5.99.13
John Goerzen [Tue, 6 May 2008 13:51:58 +0000 (08:51 -0500)]
Bump to 5.99.13

15 years agoRevert "Apply darwin.patch from Vincent Beffara"
John Goerzen [Tue, 6 May 2008 13:11:54 +0000 (08:11 -0500)]
Revert "Apply darwin.patch from Vincent Beffara"

This reverts commit 9f5c8d708bfa9c16092255a59e13fe8171588c7a.

Several people were complaining about problems.  See
http://bugs.debian.org/479677.

Closes: #479677.
refs #20.

15 years agoVersion 5.99.12 debian/5.99.12
John Goerzen [Mon, 5 May 2008 05:48:55 +0000 (00:48 -0500)]
Version 5.99.12

15 years agoFinally fix problem with making new folders
John Goerzen [Mon, 5 May 2008 05:06:25 +0000 (00:06 -0500)]
Finally fix problem with making new folders
fixes deb#478990.  fixes #63.

Patch from Martin F. Krafft.

15 years agoApply darwin.patch from Vincent Beffara
John Goerzen [Thu, 1 May 2008 20:20:56 +0000 (15:20 -0500)]
Apply darwin.patch from Vincent Beffara

fixes #20

 04/27/2008 09:34 AM - Vincent Beffara

    * File darwin.patch added

OK, I finally installed an IMAPS server on my iMac, so I could test a
little further. For some reason, fixing the read() method in
imaplibutil.py did not seem to work (it hung on connecting to the
server) - however, modifying the file imapserver.py similarly to the
non-SSL case fixed the crash.

I also reduced the chunk size to 100k instead of 1M, as 1M seemed to
still trigger the memory error in some cases. Ah, and I added a
platform test, so that the patch does essentially nothing on
non-Darwin machines ...

So, still no guarantee, but the attached patch works for me. Any
comments ?

(If noone here screams in horror at my code, I will include the patch
into the Fink package and see what happens there.)

16 years agoRev versions debian/5.99.11
John Goerzen [Thu, 17 Apr 2008 14:53:20 +0000 (09:53 -0500)]
Rev versions

16 years agoFixed a braino introduced in last patch
John Goerzen [Thu, 17 Apr 2008 05:16:19 +0000 (00:16 -0500)]
Fixed a braino introduced in last patch

Fixes #63

16 years ago5.99.10 prep debian/5.99.10
John Goerzen [Thu, 17 Apr 2008 05:11:15 +0000 (00:11 -0500)]
5.99.10 prep

16 years agoMake parent dirs of localstatus folders.
John Goerzen [Thu, 17 Apr 2008 05:09:32 +0000 (00:09 -0500)]
Make parent dirs of localstatus folders.

fixes #63

16 years agoUnify LocalStatus.py repository code with folder code
John Goerzen [Thu, 17 Apr 2008 05:09:11 +0000 (00:09 -0500)]
Unify LocalStatus.py repository code with folder code

refs #63

16 years agoVersion to 5.99.9 debian/5.99.9
John Goerzen [Thu, 27 Mar 2008 05:36:32 +0000 (00:36 -0500)]
Version to 5.99.9

16 years agoUpdate changelog for 5.99.9
John Goerzen [Thu, 27 Mar 2008 05:35:51 +0000 (00:35 -0500)]
Update changelog for 5.99.9

16 years agoAutomatically create top-level localfolder for Maildirs
John Goerzen [Thu, 27 Mar 2008 21:19:35 +0000 (16:19 -0500)]
Automatically create top-level localfolder for Maildirs
this is the folder Maildirs will put messages in.

Closes: #286967
16 years agotypo in previous
Florian Friesdorf [Thu, 20 Mar 2008 12:46:42 +0000 (13:46 +0100)]
typo in previous

16 years agoIgnore empty LocalStatus files
Florian Friesdorf [Thu, 20 Mar 2008 12:15:37 +0000 (13:15 +0100)]
Ignore empty LocalStatus files

I created new IMAP folders on my server. In some moment I found offlineimap
crashed. The reason were empty LocalStatus files. From looking at the code I
have no explanation how those files came into existence.

16 years agoAdd *~ to .gitignore
John Goerzen [Wed, 12 Mar 2008 05:29:31 +0000 (00:29 -0500)]
Add *~ to .gitignore

16 years agoUpdated with Kerberos info
John Goerzen [Mon, 10 Mar 2008 05:16:26 +0000 (00:16 -0500)]
Updated with Kerberos info

16 years agoAlso make bin/offlineimap +x
John Goerzen [Mon, 10 Mar 2008 05:05:16 +0000 (00:05 -0500)]
Also make bin/offlineimap +x

16 years agochmod +x offlineimap.py
Florian Friesdorf [Sun, 9 Mar 2008 11:56:43 +0000 (12:56 +0100)]
chmod +x offlineimap.py

16 years agoAdded suggests on python-kerberos debian/5.99.8
John Goerzen [Mon, 10 Mar 2008 01:36:02 +0000 (20:36 -0500)]
Added suggests on python-kerberos

16 years agoUpdate changelog
John Goerzen [Mon, 10 Mar 2008 01:35:13 +0000 (20:35 -0500)]
Update changelog

16 years agoBug#359213: Kerberos
Eric Dorland [Sun, 9 Mar 2008 05:46:51 +0000 (00:46 -0500)]
Bug#359213: Kerberos

* John Goerzen (jgoerzen@complete.org) wrote:
> tages 359213 help
> thanks
>
> Hi folks,
>
> Unfortunately, I lack both the expertise to add Kerberos
> authentication and a way to test this.  A patch would be very welcome
> :-)

Well it was a bit unclear but there's a patch for offlineimap attached
to Guido's message:

http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=support-GSSAPI-via-pykerberos.diff;att=1;bug=359213

I've tried it out and it works great! Except that if the Kerberos
layer throws an exception it wouldn't fail over to plain
authentication properly. Attached is a slightly reworked patch that I
tested it in the following situations:

1. python-kerberos uninstalled, with kerberos credentials.
   Prompted for password authentication as expected.

2. python-kerberos installed, with kerberos credentials.
   Keberos authentication was successful and my mail was fetched
   without password prompting. Yeehaw!

3. python-kerberos installed, with no kerberos credentials.
   Prompted for    password authentication     as expected.

I think those are all the interesting situations. So I think this is
ready to go in, with a Suggest on python-kerberos (>=
1.0+mk080218-1).

--
Eric Dorland <eric@kuroneko.ca>
ICQ: #61138586, Jabber: hooty@jabber.com

16 years agoDon't crash if LocalStatus file doesn't exist yet
John Goerzen [Mon, 10 Mar 2008 01:27:37 +0000 (20:27 -0500)]
Don't crash if LocalStatus file doesn't exist yet

Closes: #470174
16 years agoAttempt to fix a crashing bug in Gmail driver
John Goerzen [Sat, 8 Mar 2008 13:47:53 +0000 (07:47 -0600)]
Attempt to fix a crashing bug in Gmail driver

refs deb#469598

Bug report received in Debian.  User is having occasional trouble with Gmail
driver crashing, indicates problem may have started after switching to Gmail.

Gmail driver merged to tree in 81b86fb74 on 2008-01-03 and recently released
in beta tarballs.

BT shows:

  File "/var/lib/python-support/python2.4/offlineimap/folder/Gmail.py", line 102, in processmessagesflags
    attributehash = imaputil.flags2hash(imaputil.imapsplit(result)[1])
  File "/var/lib/python-support/python2.4/offlineimap/imaputil.py", line 88, in imapsplit
    for i in range(len(imapstring)):
TypeError: len() of unsized object

imap debug log shows:

imap:   29:58.16 > BEAL75 UID STORE 4887 +FLAGS (\Deleted)
imap:   29:58.47 < BEAL75 OK Success
imap:   29:58.47        matched r'(?P<tag>BEAL\d+) (?P<type>[A-Z]+) (?P<data>.*)' => ('BEAL75', 'OK', 'Success')
imap: imapsplit() called with input: None
imap: imapsplit() got a non-string input; working around.

looking at code for Gmail.py processmessagesflags, comments from Ricardo
indicate it was copied from the same function in folder/IMAP.py.

However, folder/IMAP.py has checks for this, added 2002-07-12 in
5342dacc & 817a10ce.  Suspect that Gmail author believed those checks
superfluous for Gmail.

Copied checks from folder/IMAP.py to folder/Gmail.py.

16 years ago* Remove empty /usr/sbin directory from package.
martin f. krafft [Wed, 5 Mar 2008 16:11:47 +0000 (17:11 +0100)]
* Remove empty /usr/sbin directory from package.

16 years ago* Remove second docbook-utils build dependency.
martin f. krafft [Wed, 5 Mar 2008 16:11:21 +0000 (17:11 +0100)]
* Remove second docbook-utils build dependency.

16 years ago* Fix clean target in debian/rules to allow for proper failure handling.
martin f. krafft [Wed, 5 Mar 2008 16:10:54 +0000 (17:10 +0100)]
* Fix clean target in debian/rules to allow for proper failure handling.

16 years ago* Bump debhelper compatibility level to 6 — no changes required.
martin f. krafft [Wed, 5 Mar 2008 16:09:46 +0000 (17:09 +0100)]
* Bump debhelper compatibility level to 6 — no changes required.

16 years ago* Bump Standards-Version to 3.7.3 — no changes required.
martin f. krafft [Wed, 5 Mar 2008 16:07:59 +0000 (17:07 +0100)]
* Bump Standards-Version to 3.7.3 — no changes required.

16 years agoUpdate for 5.99.7 debian/5.99.7
John Goerzen [Tue, 4 Mar 2008 14:32:29 +0000 (08:32 -0600)]
Update for 5.99.7

16 years agoRevert "completed: * fixes behaviour when changing flags, without corresp. rights...
John Goerzen [Tue, 4 Mar 2008 14:15:48 +0000 (08:15 -0600)]
Revert "completed: * fixes behaviour when changing flags, without corresp. rights (s,d,w)"

This reverts commit 08f22be8ea6a7884d3348f385c8f77e093d20a2c.

Conflicts:

offlineimap/folder/IMAP.py

16 years agoRevert "fix behaviour for delete/expunge, when lacking rights"
John Goerzen [Tue, 4 Mar 2008 14:13:48 +0000 (08:13 -0600)]
Revert "fix behaviour for delete/expunge, when lacking rights"

This reverts commit c305d63e005c8ca1ae57f1ec54f023e0d0069824.

Zak Smith reported it continued to be a problem

16 years agoPrepare for 5.99.6 debian/5.99.6
John Goerzen [Tue, 4 Mar 2008 03:42:06 +0000 (21:42 -0600)]
Prepare for 5.99.6

16 years agoRevert "fixes behaviour when changing flags, without corresp. rights (s,d,w)"
John Goerzen [Tue, 4 Mar 2008 03:20:53 +0000 (21:20 -0600)]
Revert "fixes behaviour when changing flags, without corresp. rights (s,d,w)"

This reverts commit 71a76d9a6166b3be73493912bdc02b5b4252f637.

Zak Smith reported a problem at:

      self.processmessagesflags('+', uidlist, flags)
  File "/usr/lib/python2.5/site-packages/offlineimap/folder/IMAP.py",
  line 372, in processmessagesflags
    myrights = imapobj.myrights(self.getfullname())[1][0].split()[1]
IndexError: list index out of range

Conflicts:

offlineimap/folder/IMAP.py

16 years agoMake makefolder use same temporary name as folder/LocalStatus/save debian/5.99.5
John Goerzen [Mon, 3 Mar 2008 18:59:40 +0000 (12:59 -0600)]
Make makefolder use same temporary name as folder/LocalStatus/save

16 years agoFix bug in LocalStatus so that it writes out the header line for
John Goerzen [Mon, 3 Mar 2008 18:57:56 +0000 (12:57 -0600)]
Fix bug in LocalStatus so that it writes out the header line for
folder creation

16 years agodebian/rules is executable
John Goerzen [Mon, 3 Mar 2008 10:30:29 +0000 (04:30 -0600)]
debian/rules is executable

16 years agoVersion 5.99.5 update
John Goerzen [Mon, 3 Mar 2008 10:30:13 +0000 (04:30 -0600)]
Version 5.99.5 update

16 years agoChanged Makefile line to igonre .git instead of _darcs
John Goerzen [Mon, 3 Mar 2008 10:27:42 +0000 (04:27 -0600)]
Changed Makefile line to igonre .git instead of _darcs

16 years agoAdded homepage, VCS/* lines to debian/control
John Goerzen [Mon, 3 Mar 2008 10:27:08 +0000 (04:27 -0600)]
Added homepage, VCS/* lines to debian/control

16 years agoUpdated changelog
John Goerzen [Mon, 3 Mar 2008 08:31:04 +0000 (02:31 -0600)]
Updated changelog

16 years agoMerge branch 'netrc-integration'
John Goerzen [Mon, 3 Mar 2008 08:27:13 +0000 (02:27 -0600)]
Merge branch 'netrc-integration'

Applies patches by bboisin to add netrc support

Conflicts:

offlineimap/repository/IMAP.py

refs #14

16 years agoApply tabspace.diff
John Goerzen [Mon, 3 Mar 2008 08:23:50 +0000 (02:23 -0600)]
Apply tabspace.diff
refs #14

16 years agoApplied netrc_v2.diff from bboissin
John Goerzen [Mon, 3 Mar 2008 08:21:33 +0000 (02:21 -0600)]
Applied netrc_v2.diff from bboissin

16 years agoClarify instructions for dealing with UID validity issues
John Goerzen [Mon, 3 Mar 2008 07:39:13 +0000 (01:39 -0600)]
Clarify instructions for dealing with UID validity issues

Closes: #381449
16 years agoUpdate changelog with changes so far
John Goerzen [Mon, 3 Mar 2008 07:26:58 +0000 (01:26 -0600)]
Update changelog with changes so far

16 years agoFix typo in manual
John Goerzen [Mon, 3 Mar 2008 07:20:55 +0000 (01:20 -0600)]
Fix typo in manual
Closes: #360365
16 years agoFix performance for SSL
John Goerzen [Mon, 3 Mar 2008 14:22:44 +0000 (08:22 -0600)]
Fix performance for SSL

Added WrappedIMAP4_SSL class to help fix up performance of SSL

Standard imaplib.py is really bad with this, since it reads one
character at a time.

Reported by Aaron Kaplan at
http://lists.complete.org/offlineimap@complete.org/2008/01/msg00012.html.gz

He wrote:

  I just noticed that the version of offlineimap I've been using
  (3.99.17) is well over four years old.  How time flies.  I haven't
  had any problems with it, but out of curiosity I decided to pull in
  5.99.2 from the fedora repository.  It turns out to take
  consistently over twice as long as the old version to sync the same
  account.  Is this expected?

He tracked it down at
http://lists.complete.org/offlineimap@complete.org/2008/02/msg00012.html.gz

  The following changeset is the one responsible for the difference in
  speed I was noticing between the imaplib.py that was packaged with
  older versions of offlineimap and the one that comes with python:

  * /offlineimap/head: changeset 169
    More optimizations -- this time fix readline() to not work
    character-by-character!

16 years agoFix handling of servers that return UIDs in some FETCH responses
John Goerzen [Mon, 3 Mar 2008 04:25:05 +0000 (22:25 -0600)]
Fix handling of servers that return UIDs in some FETCH responses

closes #22

from pistore in OfflineIMAP #22:

When an IMAP flag update is performed for multiple messages, some IMAP
servers (e.g. Exchange) return the UID attribute only for some of the
FETCH untagged responses, as shown in the following log:

21:19.04 > DCKF8 UID STORE 66050,50613,52164,40043,40055,25874 +FLAGS
(\Deleted)
21:19.36 < * 35 FETCH (FLAGS (\Seen \Deleted) UID 25874)
21:19.36 < * 321 FETCH (FLAGS (\Seen \Deleted))
21:19.57 < * 322 FETCH (FLAGS (\Seen \Deleted))
21:19.57 < * 560 FETCH (FLAGS (\Seen \Deleted))
21:19.57 < * 581 FETCH (FLAGS (\Seen \Deleted) UID 52164)
21:19.62 < * 1022 FETCH (FLAGS (\Seen \Deleted))
21:19.62 < DCKF8 OK STORE completed.

Function IMAPFolder.processmessagesflags is able to manage the servers
which return the UID and the servers which do not return it, but is
not able to deal with the mixed behavior shown above.

The problem is that the fragment of function
IMAPFolder.processmessagesflags that handles the responses with UID
attribute uses variable flags to store the list of flags of the
message in the IMAP format ("flags = attributehashFLAGS?"), while the
fragment that handles the responses without UID expects variable
"flags" to contain the list of modified flags passed to the function
in Maildir format ("self.messagelist[uid]flags?.append(flag)").

As a consequence, the wrong list of flags is used for the messages
without UID, leading to the addition of "strange" flags to the Maildir
messages:

Syncing messages IMAP[INBOX] -> Maildir[.]
Adding flags   to 4 messages  on Maildir[.]
Adding flags e to 4 messages  on Maildir[.]
Adding flags d to 4 messages  on Maildir[.]
Adding flags ) to 4 messages  on Maildir[.]
Adding flags ( to 4 messages  on Maildir[.]
Adding flags l to 4 messages  on Maildir[.]
Adding flags n to 4 messages  on Maildir[.]
Adding flags t to 4 messages  on Maildir[.]
Adding flags \ to 4 messages  on Maildir[.]
Adding flags D to 4 messages  on Maildir[.]
Deleting flags T to 4 messages on Maildir[.]
Adding flags   to 4 messages  on LocalStatus[.]
Adding flags e to 4 messages  on LocalStatus[.]
Adding flags d to 4 messages  on LocalStatus[.]
Adding flags ) to 4 messages  on LocalStatus[.]
Adding flags ( to 4 messages  on LocalStatus[.]
Adding flags l to 4 messages  on LocalStatus[.]
Adding flags n to 4 messages  on LocalStatus[.]
Adding flags t to 4 messages  on LocalStatus[.]
Adding flags \ to 4 messages  on LocalStatus[.]
Adding flags D to 4 messages  on LocalStatus[.]
Deleting flags T to 4 messages on LocalStatus[.]

Fix: use a different variable to store IMAP flags when managing
messages corresponding to responses with UID attribute, e.g.:

*** IMAP.py.orig        Wed Aug 22 18:23:17 2007
--- IMAP.py     Wed Aug 22 18:22:38 2007
*************** class IMAPFolder(BaseFolder):
*** 340,348 ****
              if not ('UID' in attributehash and 'FLAGS' in
              attributehash):
                  # Compensate for servers that don't return a UID
                  attribute.
                  continue
!             flags = attributehash['FLAGS']
              uid = long(attributehash['UID'])
!             self.messagelist[uid]['flags'] =
imaputil.flagsimap2maildir(flags)
              try:
                  needupdate.remove(uid)
              except ValueError:          # Let it slide if it's not
              in the list
--- 340,348 ----
              if not ('UID' in attributehash and 'FLAGS' in
              attributehash):
                  # Compensate for servers that don't return a UID
                  attribute.
                  continue
!             lflags = attributehash['FLAGS']
              uid = long(attributehash['UID'])
!             self.messagelist[uid]['flags'] =
imaputil.flagsimap2maildir(lflags)
              try:
                  needupdate.remove(uid)
              except ValueError:          # Let it slide if it's not
              in the list

02/03/08 14:04:35 changed by js

    * attachment flags-fix.patch added.

Delete 02/03/08 14:05:24 changed by js ¶

Unfortunately I have to fetch some of my mail from an Exchange server
(Microsoft Exchange Server 2003 IMAP4rev1 server version 6.5.7638.1)
and I can confirm that the analysis of the problem is correct, and the
patch given here fixes the problem.

Looking at the code of the processmessagesflags() method I think it
generally is a bug that the "flags" parameter is reused as a local
variable, since the final "for uid in needupdate:" loop needs the
original value of "flags". This only worked by accident.

I'm attaching a unidiff version of the patch which applies cleanly
against Debian unstable's offlineimap 5.99.4.

16 years agoMerge branch 'deleted-folders'
John Goerzen [Mon, 3 Mar 2008 04:21:38 +0000 (22:21 -0600)]
Merge branch 'deleted-folders'

16 years agoTruncate local status folders on creation
John Goerzen [Mon, 3 Mar 2008 04:21:10 +0000 (22:21 -0600)]
Truncate local status folders on creation

Should help eliminate problems with old cache

refs deb#459985, refs #19

16 years agoInfrastructure for notifying LocalStatus of local mailbox creations
John Goerzen [Mon, 3 Mar 2008 04:17:45 +0000 (22:17 -0600)]
Infrastructure for notifying LocalStatus of local mailbox creations

This will let us delete LocalStatus caches when we create a local
mailbox

refs deb#459985, refs #19

16 years agoAdd Gmail IMAP special support. before-localstatus last-darcs-commit
Riccardo Murri [Thu, 3 Jan 2008 03:56:55 +0000 (04:56 +0100)]
Add Gmail IMAP special support.

New repository/folder classes to support "real deletion" of messages
thorugh Gmail's IMAP interface: to really delete a message in Gmail,
one has to move it to the Trash folder, rather than EXPUNGE it.

16 years agoAdd option '-f' for sync'ing only selected folders
Riccardo Murri [Thu, 3 Jan 2008 03:15:11 +0000 (04:15 +0100)]
Add option '-f' for sync'ing only selected folders

16 years agoAdd option '-k' for overriding config options
Riccardo Murri [Thu, 3 Jan 2008 03:13:04 +0000 (04:13 +0100)]
Add option '-k' for overriding config options

16 years agocompleted: * fixes behaviour when changing flags, without corresp. rights (s,d,w)
Florian Friesdorf [Thu, 19 Jul 2007 16:52:29 +0000 (17:52 +0100)]
completed: * fixes behaviour when changing flags, without corresp. rights (s,d,w)

16 years agofixes behaviour when changing flags, without corresp. rights (s,d,w)
Florian Friesdorf [Thu, 12 Jul 2007 04:08:47 +0000 (05:08 +0100)]
fixes behaviour when changing flags, without corresp. rights (s,d,w)

16 years agofix behaviour for delete/expunge, when lacking rights
Florian Friesdorf [Thu, 12 Jul 2007 03:44:11 +0000 (04:44 +0100)]
fix behaviour for delete/expunge, when lacking rights

This patch maneuvers around python imaplib's mysterious read-only detection
algorithm and correctly calls the UI's deletetoreadonly(), when trying to
delete/expunge in a mailbox without having the necessary rights.

16 years agoTAG RELEASE_offlineimap_5.99.4 RELEASE_offlineimap_5.99.4
John Goerzen [Fri, 19 Oct 2007 19:41:08 +0000 (20:41 +0100)]
TAG RELEASE_offlineimap_5.99.4

16 years agoTAG DEBIAN_offlineimap_5.99.4 DEBIAN_offlineimap_5.99.4
John Goerzen [Fri, 19 Oct 2007 19:41:07 +0000 (20:41 +0100)]
TAG DEBIAN_offlineimap_5.99.4

16 years agoBump version number
John Goerzen [Fri, 19 Oct 2007 19:32:21 +0000 (20:32 +0100)]
Bump version number

16 years agoUpdate changelog
John Goerzen [Fri, 19 Oct 2007 19:32:00 +0000 (20:32 +0100)]
Update changelog

16 years agoUndo 'Fix Maildir race' patch
John Goerzen [Fri, 19 Oct 2007 19:29:34 +0000 (20:29 +0100)]
Undo 'Fix Maildir race' patch

This was causing OfflineIMAP to hang

16 years agoTAG RELEASE_offlineimap_5.99.3 RELEASE_offlineimap_5.99.3
John Goerzen [Fri, 19 Oct 2007 00:20:58 +0000 (01:20 +0100)]
TAG RELEASE_offlineimap_5.99.3

16 years agoTAG DEBIAN_offlineimap_5.99.3 DEBIAN_offlineimap_5.99.3
John Goerzen [Fri, 19 Oct 2007 00:20:58 +0000 (01:20 +0100)]
TAG DEBIAN_offlineimap_5.99.3

16 years agoRemove bidirectional syncing patch
John Goerzen [Fri, 19 Oct 2007 00:18:37 +0000 (01:18 +0100)]
Remove bidirectional syncing patch

didn't consider nametrans

16 years agoUNDO: Synchronize newly created folders both ways
Vincent Beffara [Sun, 2 Sep 2007 00:43:15 +0000 (01:43 +0100)]
UNDO: Synchronize newly created folders both ways

This involves several changes at different places:

- syncfoldersto() takes statusfolder as an argument, and returns the
  list of new folders and the list of folders that should be ingnored,
  typically those that were deleted. Warns the user about folders that
  are present only on one side and are not synced.

- syncfoldersto() is called both ways, and on folder creation
  forgetfolders() is used to rebuild the list and take the new creation
  into account. Probably not the most efficient, since it involves
  talking to the IMAP server again, but it will rarely be used anyway.

- Locally created folders are treated separately in the synchronization,
  namely the local messages are uploaded and then the normal sync still
  occurs. If the same folder is created on both sides and contains
  messages on both sides, a two-way sync occurs.