From 236e232ac5712cfa42de2b9dffd6825a1f027671 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Wed, 23 Oct 2024 13:26:59 +0200 Subject: [PATCH] getmail6: Update to 6.19.05. * mail/getmail6/Portfile: Update. * mail/getmail6/files/0001-pop3-Support-use_xoauth2.patch: Delete file. --- mail/getmail6/Portfile | 12 +- .../files/0001-pop3-Support-use_xoauth2.patch | 211 ------------------ 2 files changed, 4 insertions(+), 219 deletions(-) delete mode 100644 mail/getmail6/files/0001-pop3-Support-use_xoauth2.patch diff --git a/mail/getmail6/Portfile b/mail/getmail6/Portfile index cd53819c5d1c..642204e055de 100644 --- a/mail/getmail6/Portfile +++ b/mail/getmail6/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 PortGroup python 1.0 PortGroup github 1.0 -github.setup getmail6 getmail6 6.19.03 v +github.setup getmail6 getmail6 6.19.05 v github.tarball_from archive revision 0 @@ -24,13 +24,9 @@ conflicts getmail homepage https://getmail6.org -checksums rmd160 d6b0f4a5b5506529c3f2227fd2950c1ca113e079 \ - sha256 b47938a23e00fe953696757dc0eacd5f6e87561aa9ca0994ad54f182a9ba29e4 \ - size 215134 - -# https://github.com/getmail6/getmail6/pull/205 -patchfiles 0001-pop3-Support-use_xoauth2.patch -patch.pre_args -p1 +checksums rmd160 035682e42e4d7a4d5acfd07e377fbb8dd560da6c \ + sha256 1b8ae957682f446c4c7103c075605c33c7456a4809788d1b769bd469ee90d38b \ + size 216019 python.default_version 312 diff --git a/mail/getmail6/files/0001-pop3-Support-use_xoauth2.patch b/mail/getmail6/files/0001-pop3-Support-use_xoauth2.patch deleted file mode 100644 index 16ad0a2e8de4..000000000000 --- a/mail/getmail6/files/0001-pop3-Support-use_xoauth2.patch +++ /dev/null @@ -1,211 +0,0 @@ -From 7b9a6a3a991cf962143b3c9a4c665b6639d08e3c Mon Sep 17 00:00:00 2001 -From: Tomas Volf <~@wolfsden.cz> -Date: Wed, 7 Aug 2024 22:28:55 +0200 -Subject: [PATCH] pop3: Support use_xoauth2. - -Adds support for use_xoauth2 configuration and OAuth2 support to POP3 -retrievers. - -* getmailcore/_retrieverbases.py (POP3RetrieverBase.initialize): Handle -use_xoauth2. -* getmailcore/retrievers.py (SimplePOP3Retriever, SimplePOP3SSLRetriever), -(BrokenUIDLPOP3Retriever, BrokenUIDLPOP3SSLRetriever), -(MultidropPOP3Retriever, MultidropPOP3SSLRetriever), -(MultidropSDPSRetriever): New ConfBool `use_xoauth2'. -* docs/configuration.html, docs/configuration.txt: Document it. ---- - docs/configuration.html | 29 +++++++++++++++++++++++++++-- - docs/configuration.txt | 19 ++++++++++++++++++- - getmailcore/_retrieverbases.py | 8 +++++++- - getmailcore/retrievers.py | 8 +++++++- - 4 files changed, 59 insertions(+), 5 deletions(-) - -diff --git a/docs/configuration.html b/docs/configuration.html -index afabedb..c4a6969 100644 ---- a/docs/configuration.html -+++ b/docs/configuration.html -@@ -586,6 +586,31 @@ password_command = ("/path/to/password-retriever", "-p", &qu - - - -+

-+ All POP3 retriever types also take the following optional parameters: -+

-+ -

- All IMAP retriever types also take the following optional parameters: -

-@@ -685,7 +710,7 @@ mailboxes = ALL - IMAP search. - Set
imap_search = UNSEEN
to skip read messages. - The value is case-insensitive. It may be in parentheses. -- As an example
 
-+        As an example 
- imap_search = Unseen
- imap_on_delete = \Seen
- fetches only new messages and sets the message flag to SEEN on "delete" -@@ -2547,7 +2572,7 @@ localpart_translate = ('mailhostaccount-', '') - Has no effect unless use_netrc is True. - Default: unset, which means use_netrc will - read the default netrc file for your system, -- typically ~/.netrc, unless -+ typically ~/.netrc, unless - NETRC or CURLOPT_NETRC_FILE - is defined. - -diff --git a/docs/configuration.txt b/docs/configuration.txt -index 798b89e..5ea2d38 100644 ---- a/docs/configuration.txt -+++ b/docs/configuration.txt -@@ -367,6 +367,24 @@ Creating a getmail rc file - password_command = ("/path/to/password-retriever", "-p", "myaccount@example.org") - - -+ All POP3 retriever types also take the following optional parameters: -+ -+ * use_xoauth2 (boolean) — whether to use XOAUTH2 for login with the POP3 -+ server. If not set, normal password-based authentication is used. This -+ currently supports Gmail and Microsoft Office 365; if anyone extends -+ this to support other POP3 providers, please let me know so I can -+ include such support in getmail. Note that using XOAUTH2 is no more -+ secure than a regular getmail configuration with a mode 0600 getmailrc -+ file. You will need to set password_command as well to tell getmail to -+ invoke the getmail-gmail-xoauth-tokens helper program; that script -+ requires a positional argument to tell it json file where to read the -+ initial tokens from and where it writes the access and refresh tokens -+ to, and the file requires manual initial setup. Keep write access to -+ the json file. This functionality was contributed by Stefan Krah, who -+ has additional information about using it here: -+ http://www.bytereef.org/howto/oauth2/getmail.html. See -+ docs/getmailrc-examples. -+ - All IMAP retriever types also take the following optional parameters: - - * mailboxes (tuple of quoted strings) — a list of mailbox paths to -@@ -440,7 +458,6 @@ Creating a getmail rc file - to skip read messages. The value is case-insensitive. It may be in - parentheses. As an example - -- - imap_search = Unseen - imap_on_delete = \Seen - -diff --git a/getmailcore/_retrieverbases.py b/getmailcore/_retrieverbases.py -index cbb0bfd..97630f4 100755 ---- a/getmailcore/_retrieverbases.py -+++ b/getmailcore/_retrieverbases.py -@@ -41,6 +41,7 @@ import poplib - import imaplib - import re - import select -+import base64 - - try: - # do we have a recent pykerberos? -@@ -1219,6 +1220,12 @@ class POP3RetrieverBase(RetrieverSkeleton): - if self.conf['use_apop']: - self.conn.apop(self.conf['username'], - self.conf['password']) -+ elif self.conf['use_xoauth2']: -+ # octal 1 / ctrl-A used as separator -+ auth = 'user=%s\1auth=Bearer %s\1\1' % (self.conf['username'], -+ self.conf['password']) -+ auth = base64.b64encode(auth.encode()).decode() -+ self.conn._shortcmd('AUTH XOAUTH2 %s' % auth) - else: - self.conn.user(self.conf['username']) - self.conn.pass_(self.conf['password']) -@@ -2027,4 +2034,3 @@ class MultidropIMAPRetrieverBase(IMAPRetrieverBase): - ) - msg.recipient = address_no_brackets(line.strip()) - return msg -- -diff --git a/getmailcore/retrievers.py b/getmailcore/retrievers.py -index 2d1077b..1ded232 100755 ---- a/getmailcore/retrievers.py -+++ b/getmailcore/retrievers.py -@@ -66,6 +66,7 @@ class SimplePOP3Retriever(POP3RetrieverBase, POP3initMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - ConfBool(name='use_apop', required=False, default=False), - ConfBool(name='delete_dup_msgids', required=False, default=False), - ) -@@ -100,6 +101,7 @@ class SimplePOP3SSLRetriever(POP3RetrieverBase, POP3SSLinitMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - ConfBool(name='use_apop', required=False, default=False), - ConfBool(name='delete_dup_msgids', required=False, default=False), - ConfFile(name='keyfile', required=False, default=None), -@@ -178,6 +180,7 @@ class BrokenUIDLPOP3Retriever(BrokenUIDLPOP3RetrieverBase, POP3initMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - ConfBool(name='use_apop', required=False, default=False), - ) - received_with = 'POP3' -@@ -209,6 +212,7 @@ class BrokenUIDLPOP3SSLRetriever(BrokenUIDLPOP3RetrieverBase, POP3SSLinitMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - ConfBool(name='use_apop', required=False, default=False), - ConfFile(name='keyfile', required=False, default=None), - ConfFile(name='certfile', required=False, default=None), -@@ -247,6 +251,7 @@ class MultidropPOP3Retriever(MultidropPOP3RetrieverBase, POP3initMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - ConfBool(name='use_apop', required=False, default=False), - ConfString(name='envelope_recipient'), - ) -@@ -281,6 +286,7 @@ class MultidropPOP3SSLRetriever(MultidropPOP3RetrieverBase, POP3SSLinitMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - ConfBool(name='use_apop', required=False, default=False), - ConfString(name='envelope_recipient'), - ConfFile(name='keyfile', required=False, default=None), -@@ -329,6 +335,7 @@ class MultidropSDPSRetriever(SimplePOP3Retriever, POP3initMixIn): - ConfString(name='username'), - ConfPassword(name='password', required=False, default=None), - ConfTupleOfStrings(name='password_command', required=False, default=()), -+ ConfBool(name='use_xoauth2', required=False, default=False), - # Demon apparently doesn't support APOP - ConfBool(name='use_apop', required=False, default=False), - ) -@@ -563,4 +570,3 @@ class MultidropIMAPSSLRetriever(MultidropIMAPRetrieverBase, IMAPSSLinitMixIn): - self.log.trace() - self.log.info('MultidropIMAPSSLRetriever(%s)' % self._confstring() - + os.linesep) -- --- -2.46.0 -