<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d2f006793329b05bd99201a7e352c7912e1d09f9">https://github.com/macports/macports-ports/commit/d2f006793329b05bd99201a7e352c7912e1d09f9</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new d2f00679332 offlineimap: update to 8.0.0-20231118
</span>d2f00679332 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit d2f006793329b05bd99201a7e352c7912e1d09f9
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Sun Nov 19 08:36:06 2023 +0000
<span style='display:block; white-space:pre;color:#404040;'> offlineimap: update to 8.0.0-20231118
</span>---
mail/offlineimap/Portfile | 14 +++-----
mail/offlineimap/files/patch-keyring.diff | 24 ++++++++-----
mail/offlineimap/files/patch-utf8.diff | 59 -------------------------------
3 files changed, 21 insertions(+), 76 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/offlineimap/Portfile b/mail/offlineimap/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 62f70ea6d8f..2420803ce12 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/offlineimap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/offlineimap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,9 +4,9 @@ PortSystem 1.0
</span> PortGroup github 1.0
PortGroup python 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup OfflineIMAP offlineimap3 c9f44ad7c8fddf41545618644f6ce58a240ad462
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup OfflineIMAP offlineimap3 f674e8139d2137d64c83002ccf5e78b000f4ea1d
</span> name offlineimap
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 8.0.0-20230519
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 8.0.0-20231118
</span> revision 0
categories mail python
platforms {darwin any}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -39,18 +39,14 @@ long_description OfflineIMAP is a tool to simplify your e-mail reading. \
</span>
homepage http://offlineimap.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 62531b99c5164b986862611114451686658fe2e0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 055f1368bc552f42040194c31af466d9ffc91888045bcd3e02cbca93ff692bd0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 703835
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 9f6e1cedb3f4aaf759ff21988580c2b08247c62c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 c6283ceba74dd1ec7e12137d26dd9bbf19eefac6e8ae96d3ced9983c6ee33c0d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 704256
</span>
# enable native integration with system keyring
# See: https://github.com/OfflineIMAP/offlineimap3/pull/102
patchfiles-append patch-keyring.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# A workarround for https://bugs.python.org/issue32330
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# See: https://github.com/OfflineIMAP/offlineimap3/pull/150
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append patch-utf8.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> python.default_version 311
depends_build port:py${python.version}-docutils \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/offlineimap/files/patch-keyring.diff b/mail/offlineimap/files/patch-keyring.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 1e9a17667cb..676ac69b540 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/offlineimap/files/patch-keyring.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mail/offlineimap/files/patch-keyring.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span> diff --git README.md README.md
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index bece058..31035f0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index edaf114..21cacdc 100644
</span> --- README.md
+++ README.md
@@ -101,6 +101,7 @@ Bugs, issues and contributions can be requested to both the mailing list or the
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,7 +11,7 @@ index bece058..31035f0 100644
</span> * portalocker (optional), if you need to run offlineimap in Cygwin for Windows
diff --git offlineimap/imapserver.py offlineimap/imapserver.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 79015a6..e733899 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3b98712..9792076 100644
</span> --- offlineimap/imapserver.py
+++ offlineimap/imapserver.py
@@ -56,6 +56,8 @@ class IMAPServer:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,7 +72,7 @@ index fe7aaae..713ae6d 100644
</span> # Create the ui class.
self.ui = UI_LIST[ui_type.lower()](config)
diff --git offlineimap/repository/IMAP.py offlineimap/repository/IMAP.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5b29b21..0b6bce6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d834db1..a1abfcd 100644
</span> --- offlineimap/repository/IMAP.py
+++ offlineimap/repository/IMAP.py
@@ -22,6 +22,9 @@ import netrc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,17 +90,25 @@ index 5b29b21..0b6bce6 100644
</span> return self.getconfboolean('expunge', True)
- def getpassword(self):
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def getpassword(self, ignore_keyring):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ def getpassword(self, ignore_keyring=False):
</span> """Return the IMAP password for this repository.
It tries to get passwords in the following order:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -647,9 +650,22 @@ class IMAPRepository(BaseRepository):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -575,6 +578,7 @@ class IMAPRepository(BaseRepository):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3. read password from file specified in Repository 'remotepassfile'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4. read password from ~/.netrc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5. read password from /etc/netrc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 6. read password from keyring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ On success we return the password.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If all strategies fail we return None."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -647,9 +651,22 @@ class IMAPRepository(BaseRepository):
</span> user = self.getuser()
if user is None or user == netrcentry[0]:
return netrcentry[2]
- # No strategy yielded a password!
+
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # 5. Read from keyring as the last option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # 6. Read password from keyring as the last option
</span> + if not ignore_keyring:
+ return keyring.get_password(self.gethost(), self.getuser())
return None
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -119,13 +127,13 @@ index 5b29b21..0b6bce6 100644
</span> """Return instance of OfflineIMAP representative folder."""
diff --git requirements.txt requirements.txt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e580f5f..fa885db 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 58b66ca..5da4913 100644
</span> --- requirements.txt
+++ requirements.txt
@@ -3,7 +3,7 @@ gssapi[kerberos]
portalocker[cygwin]
rfc6555
<span style='display:block; white-space:pre;background:#ffe0e0;'>- distro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distro;platform_system=="Linux" and python_version>"3.7"
</span> -
+keyring
imaplib2>=3.5
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mail/offlineimap/files/patch-utf8.diff b/mail/offlineimap/files/patch-utf8.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 518a3b945be..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mail/offlineimap/files/patch-utf8.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,59 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git offlineimap/folder/Base.py offlineimap/folder/Base.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f871d6f..c433d7a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- offlineimap/folder/Base.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ offlineimap/folder/Base.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17,6 +17,7 @@ Copyright (C) 2002-2016 John Goerzen & contributors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import email
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import os.path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import re
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -26,12 +27,25 @@ from email import policy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from email.parser import BytesParser
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from email.generator import BytesGenerator
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from email.utils import parsedate_tz, mktime_tz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+from email.charset import Charset
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from offlineimap import threadutil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from offlineimap.ui import getglobalui
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from offlineimap.error import OfflineImapError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import offlineimap.accounts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This is wrapper to workaround for:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# - https://bugs.python.org/issue32330
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+class EmailMessage(email.message.EmailMessage):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def set_payload(self, payload, charset=None):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if hasattr(payload, 'encode') and (charset is not None or self.policy.utf8):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if charset is None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ charset = Charset('utf-8')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ elif not isinstance(charset, Charset):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ charset = Charset(charset)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ payload = payload.encode(charset.output_charset, 'replace')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ charset = None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ super().set_payload(payload, charset)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class BaseFolder:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -49,15 +63,16 @@ class BaseFolder:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.messagelist = {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Use the built-in email libraries
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Establish some policies
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default_policy = policy.default.clone(message_factory=EmailMessage)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.policy = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- '7bit':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- policy.default.clone(cte_type='7bit', utf8=False, refold_source='none'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default_policy.clone(cte_type='7bit', utf8=False, refold_source='none'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- '7bit-RFC':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- policy.default.clone(cte_type='7bit', utf8=False, refold_source='none', linesep='\r\n'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default_policy.clone(cte_type='7bit', utf8=False, refold_source='none', linesep='\r\n'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- '8bit':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- policy.default.clone(cte_type='8bit', utf8=True, refold_source='none'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default_policy.clone(cte_type='8bit', utf8=True, refold_source='none'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- '8bit-RFC':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- policy.default.clone(cte_type='8bit', utf8=True, refold_source='none', linesep='\r\n'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ default_policy.clone(cte_type='8bit', utf8=True, refold_source='none', linesep='\r\n'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Parsers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.parser = {}
</span></pre><pre style='margin:0'>
</pre>