]> git.pld-linux.org Git - packages/offlineimap.git/commitdiff
- added upstream patch for incorrect way of adding new header in case of auto/th/offlineimap-6.5.6-2
authorJan Palus <atler@pld-linux.org>
Tue, 25 Nov 2014 22:11:52 +0000 (23:11 +0100)
committerJan Palus <atler@pld-linux.org>
Tue, 25 Nov 2014 22:11:52 +0000 (23:11 +0100)
  missing uidplus cap (fixes move with davmail server)
- rel 2

offlineimap-no_uidplus.patch [new file with mode: 0644]
offlineimap.spec

diff --git a/offlineimap-no_uidplus.patch b/offlineimap-no_uidplus.patch
new file mode 100644 (file)
index 0000000..90ef91f
--- /dev/null
@@ -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:])
index c3232f769b3cca4ff57036fcd43e91287d8002d3..4405309c43b92d13646f641e394467985b3c5795 100644 (file)
@@ -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}
This page took 0.091274 seconds and 4 git commands to generate.