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