]> code.delx.au - offlineimap/log
offlineimap
15 years agoAll changes fixed, I think
John Goerzen [Thu, 29 May 2008 05:28:13 +0000 (00:28 -0500)]
All changes fixed, I think

15 years agoMake unaryApplyChanges aware of ModifyContent
John Goerzen [Thu, 29 May 2008 05:14:33 +0000 (00:14 -0500)]
Make unaryApplyChanges aware of ModifyContent

15 years agoFixed logic and documented it better
John Goerzen [Thu, 29 May 2008 05:13:10 +0000 (00:13 -0500)]
Fixed logic and documented it better

15 years agoSome progress on All changes to child test, needs more fixing in that test
John Goerzen [Thu, 29 May 2008 03:18:16 +0000 (22:18 -0500)]
Some progress on All changes to child test, needs more fixing in that test

15 years agoAll changes pass
John Goerzen [Thu, 29 May 2008 03:13:43 +0000 (22:13 -0500)]
All changes pass

15 years agoTweaks some more
John Goerzen [Thu, 29 May 2008 03:05:37 +0000 (22:05 -0500)]
Tweaks some more

15 years agoBelieve fixed the all changes test, need to fix implementation now
John Goerzen [Thu, 29 May 2008 02:58:05 +0000 (21:58 -0500)]
Believe fixed the all changes test, need to fix implementation now

15 years agoMore work on tests
John Goerzen [Wed, 28 May 2008 12:23:17 +0000 (07:23 -0500)]
More work on tests

15 years agoFixed prop_allChangesToChild and prop_allChangesToMaster for modifications
John Goerzen [Wed, 28 May 2008 12:05:04 +0000 (07:05 -0500)]
Fixed prop_allChangesToChild and prop_allChangesToMaster for modifications

15 years agoFirst stab at detecting content payload modifications -- not yet working
John Goerzen [Wed, 28 May 2008 11:51:11 +0000 (06:51 -0500)]
First stab at detecting content payload modifications -- not yet working

15 years agoFixed prop_unaryApplyChanges for arbitrary types)
John Goerzen [Wed, 28 May 2008 11:27:10 +0000 (06:27 -0500)]
Fixed prop_unaryApplyChanges for arbitrary types)

15 years agoMade tests use generic types; they don't yet all pass like this
John Goerzen [Wed, 28 May 2008 11:18:04 +0000 (06:18 -0500)]
Made tests use generic types; they don't yet all pass like this

15 years agoAdjusted code so that it can carry a payload
John Goerzen [Wed, 28 May 2008 11:04:50 +0000 (06:04 -0500)]
Adjusted code so that it can carry a payload

15 years agoAdded diffCollection and test for it
John Goerzen [Wed, 28 May 2008 10:54:10 +0000 (05:54 -0500)]
Added diffCollection and test for it

15 years agoAnother new test
John Goerzen [Wed, 28 May 2008 10:47:34 +0000 (05:47 -0500)]
Another new test

15 years agoRename syncThem to syncBiDir
John Goerzen [Wed, 28 May 2008 10:38:34 +0000 (05:38 -0500)]
Rename syncThem to syncBiDir

15 years agoFixed unaryApplyChanges test
John Goerzen [Wed, 28 May 2008 10:35:17 +0000 (05:35 -0500)]
Fixed unaryApplyChanges test

15 years agoAdding new unaryApplyChanges test
John Goerzen [Wed, 28 May 2008 10:31:47 +0000 (05:31 -0500)]
Adding new unaryApplyChanges test

15 years agoAdded new (passing) test to compute all changes
John Goerzen [Wed, 28 May 2008 10:06:37 +0000 (05:06 -0500)]
Added new (passing) test to compute all changes

15 years agoAdded more tests
John Goerzen [Wed, 28 May 2008 10:01:10 +0000 (05:01 -0500)]
Added more tests

15 years agoGenericized emptymap
John Goerzen [Wed, 28 May 2008 09:54:10 +0000 (04:54 -0500)]
Genericized emptymap

15 years agoCleaned up findDeleted fix
John Goerzen [Wed, 28 May 2008 09:53:14 +0000 (04:53 -0500)]
Cleaned up findDeleted fix

15 years agoFixed deletion logic
John Goerzen [Wed, 28 May 2008 09:52:08 +0000 (04:52 -0500)]
Fixed deletion logic

15 years agoInitial work on detecting adds
John Goerzen [Wed, 28 May 2008 09:44:12 +0000 (04:44 -0500)]
Initial work on detecting adds

15 years agoAdded tests
John Goerzen [Wed, 28 May 2008 09:29:31 +0000 (04:29 -0500)]
Added tests

15 years agoAdded masterchanges start
John Goerzen [Wed, 28 May 2008 09:27:35 +0000 (04:27 -0500)]
Added masterchanges start

15 years agoSimplification of logic
John Goerzen [Wed, 28 May 2008 09:26:40 +0000 (04:26 -0500)]
Simplification of logic

15 years agoRemoved status modification return
John Goerzen [Wed, 28 May 2008 09:17:03 +0000 (04:17 -0500)]
Removed status modification return

15 years agoFixed first error detected
John Goerzen [Wed, 28 May 2008 09:13:57 +0000 (04:13 -0500)]
Fixed first error detected

15 years agoTests now use @=?
John Goerzen [Wed, 28 May 2008 09:04:41 +0000 (04:04 -0500)]
Tests now use @=?

15 years agoCleaned up and added to test infrastructure
John Goerzen [Wed, 28 May 2008 09:02:12 +0000 (04:02 -0500)]
Cleaned up and added to test infrastructure

15 years agoSwitched type of allt to be hunit-compatible
John Goerzen [Wed, 28 May 2008 08:58:38 +0000 (03:58 -0500)]
Switched type of allt to be hunit-compatible

15 years agoCheckpointing work on tests
John Goerzen [Wed, 28 May 2008 08:58:13 +0000 (03:58 -0500)]
Checkpointing work on tests

15 years agoTest infrastructure improvements
John Goerzen [Wed, 28 May 2008 08:49:28 +0000 (03:49 -0500)]
Test infrastructure improvements

15 years agoTests enhanced
John Goerzen [Wed, 28 May 2008 16:36:40 +0000 (11:36 -0500)]
Tests enhanced

15 years agoTests now run
John Goerzen [Wed, 28 May 2008 16:17:48 +0000 (11:17 -0500)]
Tests now run

15 years agoStart of real output
John Goerzen [Wed, 28 May 2008 05:54:50 +0000 (00:54 -0500)]
Start of real output

15 years agoStarting work on initial algorithm
John Goerzen [Wed, 28 May 2008 05:53:48 +0000 (00:53 -0500)]
Starting work on initial algorithm

15 years agoAdded make test
John Goerzen [Wed, 28 May 2008 05:27:29 +0000 (00:27 -0500)]
Added make test

15 years agoInitial build works
John Goerzen [Wed, 28 May 2008 05:26:11 +0000 (00:26 -0500)]
Initial build works

15 years agoWorking on it
John Goerzen [Wed, 28 May 2008 05:24:59 +0000 (00:24 -0500)]
Working on it

15 years agoStarting of Haskell Makefile, OfflineIMAP.cabal
John Goerzen [Wed, 28 May 2008 05:12:08 +0000 (00:12 -0500)]
Starting of Haskell Makefile, OfflineIMAP.cabal

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.

16 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!