<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/e4845dc9b098de9b0fe13a5948d9de7115197ff5">https://github.com/macports/macports-ports/commit/e4845dc9b098de9b0fe13a5948d9de7115197ff5</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 e4845dc9b09 offlineimap: update to 8.0.0-20231201
</span>e4845dc9b09 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit e4845dc9b098de9b0fe13a5948d9de7115197ff5
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Tue Dec 5 22:37:20 2023 +0000
<span style='display:block; white-space:pre;color:#404040;'> offlineimap: update to 8.0.0-20231201
</span>---
mail/offlineimap/Portfile | 20 ++---
mail/offlineimap/files/patch-keyring.diff | 141 ------------------------------
2 files changed, 5 insertions(+), 156 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 2420803ce12..1a6b4955c20 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 f674e8139d2137d64c83002ccf5e78b000f4ea1d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup OfflineIMAP offlineimap3 77e70ed4747313552f6df75b68a43c70af7267e1
</span> name offlineimap
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 8.0.0-20231118
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 8.0.0-20231201
</span> revision 0
categories mail python
platforms {darwin any}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -39,13 +39,9 @@ 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 9f6e1cedb3f4aaf759ff21988580c2b08247c62c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 c6283ceba74dd1ec7e12137d26dd9bbf19eefac6e8ae96d3ced9983c6ee33c0d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 704256
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# enable native integration with system keyring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# See: https://github.com/OfflineIMAP/offlineimap3/pull/102
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append patch-keyring.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 e5db296a7c102f6ec9190d3f711a3e0c07c15120 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 05d59a01f3d8fcde482185e67e145e62946fc74223f4b4e923e9136c091878a0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 704587
</span>
python.default_version 311
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,9 +77,3 @@ post-destroot {
</span> xinstall -m 644 ${worksrcpath}/offlineimap.conf.minimal \
${destroot}${prefix}/etc/offlineimap.conf.minimal.sample
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-notes "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This version of offlineimap includes support system keyring,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-you may migrate your passwords from .offlineimaprc by adding\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-option --update-keyring for the next run.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"
</span><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>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 676ac69b540..00000000000
</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;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,141 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git README.md README.md
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index edaf114..21cacdc 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- README.md
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ README.md
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -101,6 +101,7 @@ Bugs, issues and contributions can be requested to both the mailing list or the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Python v3+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * rfc6555 (required)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * imaplib2 >= 3.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+* keyring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * gssapi (optional), for Kerberos authentication
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * portalocker (optional), if you need to run offlineimap in Cygwin for Windows
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git offlineimap/imapserver.py offlineimap/imapserver.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3b98712..9792076 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- offlineimap/imapserver.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ offlineimap/imapserver.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -56,6 +56,8 @@ class IMAPServer:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.ui = getglobalui()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.repos = repos
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.config = repos.getconfig()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.ignore_keyring = self.config.getboolean('general', 'ignore-keyring')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.update_keyring = self.config.getboolean('general', 'update-keyring')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.preauth_tunnel = repos.getpreauthtunnel()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.transport_tunnel = repos.gettransporttunnel()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -176,8 +178,10 @@ class IMAPServer:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return self.password # non-failed preconfigured one
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # get 1) configured password first 2) fall back to asking via UI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- self.password = self.repos.getpassword() or \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.password = self.repos.getpassword(self.ignore_keyring) or \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.ui.getpass(self.username, self.config, self.passworderror)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if self.update_keyring:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ self.repos.updatepassword(self.password)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.passworderror = None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return self.password
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git offlineimap/init.py offlineimap/init.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index fe7aaae..713ae6d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- offlineimap/init.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ offlineimap/init.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -196,6 +196,14 @@ class OfflineImap:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- action="store_true", dest="mbnames_prune", default=False,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- help="remove mbnames entries for accounts not in accounts")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ parser.add_option("--ignore-keyring",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ action="store_true", dest="ignore_keyring", default=False,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ help="Ignore password which is stored in system keyring")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ parser.add_option("--update-keyring",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ action="store_true", dest="update_keyring", default=False,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ help="Update system keyring with used password")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (options, args) = parser.parse_args()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- glob.set_options(options)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -273,6 +281,16 @@ class OfflineImap:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.set('general', 'dry-run', 'True')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.set_if_not_exists('general', 'dry-run', 'False')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # ignore_keyring? Set [general]ignore_keyring=True.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if options.ignore_keyring:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.set('general', 'ignore-keyring', 'True')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.set_if_not_exists('general', 'ignore-keyring', 'False')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # update_keyring? Set [general]update_keyring=True.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if options.update_keyring:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.set('general', 'update-keyring', 'True')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.set_if_not_exists('general', 'update-keyring', 'False')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- try:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Create the ui class.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- self.ui = UI_LIST[ui_type.lower()](config)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git offlineimap/repository/IMAP.py offlineimap/repository/IMAP.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index d834db1..a1abfcd 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- offlineimap/repository/IMAP.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ offlineimap/repository/IMAP.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -22,6 +22,9 @@ import netrc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import errno
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from sys import exc_info
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from threading import Event
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+import keyring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from offlineimap import folder, imaputil, imapserver, OfflineImapError
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from offlineimap.repository.Base import BaseRepository
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from offlineimap.threadutil import ExitNotifyThread
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -565,7 +568,7 @@ class IMAPRepository(BaseRepository):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return self.getconfboolean('expunge', True)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- def getpassword(self):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def getpassword(self, ignore_keyring=False):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- """Return the IMAP password for this repository.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- It tries to get passwords in the following order:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -575,6 +578,7 @@ class IMAPRepository(BaseRepository):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3. read password from file specified in Repository 'remotepassfile'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4. read password from ~/.netrc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5. read password from /etc/netrc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 6. read password from keyring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- On success we return the password.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- If all strategies fail we return None."""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -647,9 +651,22 @@ class IMAPRepository(BaseRepository):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- user = self.getuser()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if user is None or user == netrcentry[0]:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return netrcentry[2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- # No strategy yielded a password!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # 6. Read password from keyring as the last option
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if not ignore_keyring:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return keyring.get_password(self.gethost(), self.getuser())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ def updatepassword(self, password):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ This function update provided password into system keyring.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ None means to remove it.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ """
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if password is None:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ keyring.delete_password(self.gethost(), self.getuser())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ keyring.set_password(self.gethost(), self.getuser(), password)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def getfolder(self, foldername, decode=True):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- """Return instance of OfflineIMAP representative folder."""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git requirements.txt requirements.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 58b66ca..5da4913 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- requirements.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ requirements.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3,7 +3,7 @@ gssapi[kerberos]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- portalocker[cygwin]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rfc6555
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distro;platform_system=="Linux" and python_version>"3.7"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+keyring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- imaplib2>=3.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- urllib3~=1.25.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- certifi~=2020.6.20
</span></pre><pre style='margin:0'>
</pre>