]> code.delx.au - offlineimap/log
offlineimap
15 years agoImport md5 from hashlib if available.
Loui Chang [Thu, 4 Dec 2008 21:45:15 +0000 (16:45 -0500)]
Import md5 from hashlib if available.

The md5 module is deprecated and hashlib is available
since python 2.5.

Signed-off-by: Loui Chang <louipc.ist@gmail.com>
15 years agoPatch from Jim Pryor to support /etc/netrc in addition to ~/.netrc
John Goerzen [Tue, 2 Dec 2008 19:15:44 +0000 (13:15 -0600)]
Patch from Jim Pryor to support /etc/netrc in addition to ~/.netrc

15 years agoApply remainder of Jim Pryor's patch
John Goerzen [Tue, 2 Dec 2008 19:12:36 +0000 (13:12 -0600)]
Apply remainder of Jim Pryor's patch

15 years agomade note in changelog
John Goerzen [Mon, 1 Dec 2008 22:15:42 +0000 (16:15 -0600)]
made note in changelog

15 years agoPatch for signal handling to start a sync by Jim Pryor
John Goerzen [Mon, 1 Dec 2008 22:13:16 +0000 (16:13 -0600)]
Patch for signal handling to start a sync by Jim Pryor
Here's the way I'd like to use offlineimap on my laptop:
    1. Have a regular cron job running infrequently. The cron job
    checks to see
if I'm online, plugged in, and that no other copy of offlineimap is
running. If
all of these conditions are satisfied, it runs offlineimap just once:
"offlineimap -o -u Noninteractive.Quiet"

    2. When I start up mutt, I do it by calling a wrapper script that
    delays
until cron-started copies of offlineimap have finished, then starts
    offlineimap
on its regular, stay-alive and keep checking schedule. When I quit
    mutt, the
wrapper script tells offlineimap to stop.

This way I get frequent regular checks while I have mutt running, but
I don't
waste my battery/cpu checking frequently for mail when I'm not
interested in
it.

To make this work, though, it'd be nicer if it were easier to tell
offlineimap,
from the outside, things like "terminate cleanly now" and "when you've
finished
synching, then terminate instead of sleeping and synching again."

OK, to put my money where my mouth is, I attach two patches against
offlineimap
6.0.3.

The first, "cleanup.patch", cleans up a few spots that tend to throw
exceptions
for me as offlineimap is exiting from a KeyboardInterrupt.

The second adds signaling capabilities to offlineimap.

* sending a SIGTERM tells offlineimap to terminate immediately but
  cleanly,
  just as if "q" had been pressed in the GUI interface

* sending a SIGUSR1 tells every account to do a full sync asap: if
  it's
  sleeping, then wake up and do the sync now. If it's mid-sync, then
  re-synch
  any folders whose syncing has already been started or completed, and
  continue
  to synch the other, queued but not-yet-synched folders.

* sending a SIGHUP tells every account to die as soon as it can (but
  not
  immediately: only after finishing any synch it's now engaged in)

* sending a SIGUSR2 tells every account to do a full sync asap (as
  with
  SIGUSR1), then die

It's tricky to mix signals with threads, but I think I've done this
correctly.
I've been using it now for a few weeks without any obvious
problems. But I'm passing it
on so that others can review the code and test it out on their
systems. I developed the
patch when I was running Python 2.5.2, but to my knowledge I don't use
any Python 2.5-specific
code. Now I'm using the patch with Python 2.6.

Although I said "without any obvious problems," let me confess that
I'm
seeing offlineimap regularly choke when I do things like this: start
up
my offlineimap-wrapped copy of mutt, wait a while, put the machine to
sleep (not sure if offlineimap is active in the background or idling),
move to a different spot, wake the machine up again and it acquires a
new network, sometimes a wired network instead of wifi. Offlineimap
doesn't like that so much. I don't yet have any reason to think the
problems here come from my patches. But I'm just acknowledging them,
so
that if others are able to use offlineimap without any difficulty in
situations like I described, then maybe the fault is with my patches.

15 years agoPatch to make exit on Ctrl-C cleaner
John Goerzen [Mon, 1 Dec 2008 22:10:49 +0000 (16:10 -0600)]
Patch to make exit on Ctrl-C cleaner
From Jim Pryor

The first, "cleanup.patch", cleans up a few spots that tend to throw
exceptions for me as offlineimap is exiting from a KeyboardInterrupt.

15 years agoNew option to only work with subscribed folders
John Goerzen [Wed, 1 Oct 2008 05:33:57 +0000 (00:33 -0500)]
New option to only work with subscribed folders

Patch from Sean Finney, slightly modified by John Goerzen to change
name of config file option

fixes deb#499588

15 years agoAdded docs for hooks
John Goerzen [Wed, 1 Oct 2008 05:04:14 +0000 (00:04 -0500)]
Added docs for hooks

Patch from Sias Mey

fixes #71

15 years agoApplied pre/post sync hooks
John Goerzen [Wed, 1 Oct 2008 05:03:04 +0000 (00:03 -0500)]
Applied pre/post sync hooks

Patch from Sylvain FORET in refs #71

15 years agoMerge branch 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offlineimap
John Goerzen [Mon, 29 Sep 2008 23:04:50 +0000 (18:04 -0500)]
Merge branch 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offlineimap

15 years agoimaplibutil: Remove flagrantly bad use of private attribute
Michael Witten [Fri, 26 Sep 2008 15:43:57 +0000 (10:43 -0500)]
imaplibutil: Remove flagrantly bad use of private attribute

Frankly, the original code doesn't even make much sense, and
moreover it's not forward compatible with python 2.6, and
furthermore:

    DeprecationWarning: socket.ssl() is deprecated.

So, this commit is just a temporary fix.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
15 years agoApply new darwin.patch from Vincent Beffara
John Goerzen [Tue, 16 Sep 2008 21:51:11 +0000 (16:51 -0500)]
Apply new darwin.patch from Vincent Beffara
fixes #20
patch dated 5/27/2008

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.

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!

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