[packages/offlineimap] - added upstream patch for incorrect way of adding new header in case of missing uidplus cap (fixe
atler
atler at pld-linux.org
Tue Nov 25 23:14:14 CET 2014
commit 935ed8a925fc1df40bd5261638be22d4c8015ec2
Author: Jan Palus <atler at pld-linux.org>
Date: Tue Nov 25 23:11:52 2014 +0100
- added upstream patch for incorrect way of adding new header in case of
missing uidplus cap (fixes move with davmail server)
- rel 2
offlineimap-no_uidplus.patch | 93 ++++++++++++++++++++++++++++++++++++++++++++
offlineimap.spec | 4 +-
2 files changed, 96 insertions(+), 1 deletion(-)
---
diff --git a/offlineimap.spec b/offlineimap.spec
index c3232f7..4405309 100644
--- a/offlineimap.spec
+++ b/offlineimap.spec
@@ -4,12 +4,13 @@ Summary: Mailboxes synchronization tool
Summary(pl.UTF-8): Narzędzie do synchroniczacji skrzynek pocztowych
Name: offlineimap
Version: 6.5.6
-Release: 1
+Release: 2
License: GPL v2
Group: Applications/Mail
Source0: http://github.com/OfflineIMAP/%{name}/archive/v%{version}.tar.gz?/%{name}-%{version}.tar.gz
# Source0-md5: b595561eb2050767c376df3b92aa0d74
Patch0: %{name}-docs.patch
+Patch1: %{name}-no_uidplus.patch
URL: https://offlineimap.org
BuildRequires: rpm-pythonprov >= 4.1-13
%if %{with doc}
@@ -44,6 +45,7 @@ połączenia.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%if %{with doc}
diff --git a/offlineimap-no_uidplus.patch b/offlineimap-no_uidplus.patch
new file mode 100644
index 0000000..90ef91f
--- /dev/null
+++ b/offlineimap-no_uidplus.patch
@@ -0,0 +1,93 @@
+diff --git a/offlineimap/folder/Base.py b/offlineimap/folder/Base.py
+index 43e79ff..bca52a2 100644
+--- a/offlineimap/folder/Base.py
++++ b/offlineimap/folder/Base.py
+@@ -413,16 +413,26 @@ def deletemessageslabels(self, uidlist, labels):
+
+ """
+
+- def addmessageheader(self, content, headername, headervalue):
++ def addmessageheader(self, content, crlf, headername, headervalue):
++ """
++ Adds new header to the provided message.
++
++ Arguments:
++ - content: message content, headers and body as a single string
++ - crlf: string that carries line ending
++ - headername: name of the header to add
++ - headervalue: value of the header to add
++
++ """
+ self.ui.debug('',
+ 'addmessageheader: called to add %s: %s' % (headername,
+ headervalue))
+- prefix = '\n'
++ prefix = crlf
+ suffix = ''
+- insertionpoint = content.find('\n\n')
++ insertionpoint = content.find(crlf + crlf)
+ if insertionpoint == 0 or insertionpoint == -1:
+ prefix = ''
+- suffix = '\n'
++ suffix = crlf
+ if insertionpoint == -1:
+ insertionpoint = 0
+ # When body starts immediately, without preceding '\n'
+@@ -430,8 +440,8 @@ def addmessageheader(self, content, headername, headervalue):
+ # we seen many broken ones), we should add '\n' to make
+ # new (and the only header, in this case) to be properly
+ # separated from the message body.
+- if content[0] != '\n':
+- suffix = suffix + '\n'
++ if content[0:len(crlf)] != crlf:
++ suffix = suffix + crlf
+
+ self.ui.debug('', 'addmessageheader: insertionpoint = %d' % insertionpoint)
+ headers = content[0:insertionpoint]
+diff --git a/offlineimap/folder/Gmail.py b/offlineimap/folder/Gmail.py
+index f051938..2a598de 100644
+--- a/offlineimap/folder/Gmail.py
++++ b/offlineimap/folder/Gmail.py
+@@ -93,7 +93,7 @@ def getmessage(self, uid):
+ labels = set()
+ labels = labels - self.ignorelabels
+ labels_str = imaputil.format_labels_string(self.labelsheader, sorted(labels))
+- body = self.addmessageheader(body, self.labelsheader, labels_str)
++ body = self.addmessageheader(body, '\n', self.labelsheader, labels_str)
+
+ if len(body)>200:
+ dbg_output = "%s...%s" % (str(body)[:150], str(body)[-50:])
+diff --git a/offlineimap/folder/GmailMaildir.py b/offlineimap/folder/GmailMaildir.py
+index 3f37b02..be0d20d 100644
+--- a/offlineimap/folder/GmailMaildir.py
++++ b/offlineimap/folder/GmailMaildir.py
+@@ -141,7 +141,7 @@ def savemessagelabels(self, uid, labels, ignorelabels=set()):
+ # Change labels into content
+ labels_str = imaputil.format_labels_string(self.labelsheader,
+ sorted(labels | ignoredlabels))
+- content = self.addmessageheader(content, self.labelsheader, labels_str)
++ content = self.addmessageheader(content, '\n', self.labelsheader, labels_str)
+ rtime = self.messagelist[uid].get('rtime', None)
+
+ # write file with new labels to a unique file in tmp
+diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py
+index 4801eef..3b506e5 100644
+--- a/offlineimap/folder/IMAP.py
++++ b/offlineimap/folder/IMAP.py
+@@ -526,6 +526,7 @@ def savemessage(self, uid, content, flags, rtime):
+ # NB: imapobj to None.
+ try:
+ while retry_left:
++ # XXX: we can mangle message only once, out of the loop
+ # UIDPLUS extension provides us with an APPENDUID response.
+ use_uidplus = 'UIDPLUS' in imapobj.capabilities
+
+@@ -535,7 +536,7 @@ def savemessage(self, uid, content, flags, rtime):
+ content)
+ self.ui.debug('imap', 'savemessage: header is: %s: %s' %\
+ (headername, headervalue))
+- content = self.addmessageheader(content, headername, headervalue)
++ content = self.addmessageheader(content, CRLF, headername, headervalue)
+
+ if len(content)>200:
+ dbg_output = "%s...%s" % (content[:150], content[-50:])
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/offlineimap.git/commitdiff/935ed8a925fc1df40bd5261638be22d4c8015ec2
More information about the pld-cvs-commit
mailing list