Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fetchmail for openSUSE:Factory 
checked in at 2024-11-30 13:28:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fetchmail (Old)
 and      /work/SRC/openSUSE:Factory/.fetchmail.new.28523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fetchmail"

Sat Nov 30 13:28:22 2024 rev:115 rq:1227351 version:6.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/fetchmail/fetchmail.changes      2024-04-12 
17:38:30.099964996 +0200
+++ /work/SRC/openSUSE:Factory/.fetchmail.new.28523/fetchmail.changes   
2024-11-30 13:29:24.629615624 +0100
@@ -1,0 +2,29 @@
+Tue Nov 26 09:22:07 UTC 2024 - Angel Yankov <[email protected]>
+
+- Upgrade to 6.5.1 
+  * Drop two wolfSSL compile-time checks that were for older 6.4 or for future
+    7.0 releases and broke compilation with wolfSSL 5.7.4. 
+    Fixes https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282413#c4
+  * Use %p instead of non-portable %#p for one wolfSSL-related diagnostic 
message
+    (FreeBSD defines %#p to be %p, on many other platforms it's undefined 
+    behavior).
+  * Add regex_helper.c to list of files that contain translatable strings,
+    which contains two strings we missed to translate.
+  * Simplify EVP_MD_fetch API detection ("like OpenSSL 3" vs. "like OpenSSL 
1") 
+    for version switch and base it on the claimed OpenSSL version of the 
crypto 
+    SSL, which works for LibreSSL (claims OpenSSL 2) and wolfSSL alike.
+  * Several translations added
+  - Rebased fetchmail-6.3.8-smtp_errors.patch
+  - Rebased 
fetchmail-FAQ-list-gmail-options-including-oauthbearer-and-app.patch
+  - Rebased 
fetchmail-add-contrib-fetchnmail-oauth2.py-token-acquisition-u.patch
+  - Rebased fetchmail-add-imap-oauthbearer-support.patch
+  - Rebased fetchmail-add-passwordfile-and-passwordfd-options.patch
+  - Rebased fetchmail-add-query_to64_outsize-utility-function.patch
+  - Rebased fetchmail-bump-max-passwordlen-to-1bytes.patch
+  - Rebased fetchmail-give-each-ctl-it-s-own-copy-of-password.patch
+  - Rebased fetchmail-increase-max-password-length-to-handle-oauth-tokens.patch
+  - Rebased fetchmail-re-read-passwordfile-on-every-poll.patch
+  - Rebased fetchmail-support-oauthbearer-xoauth2-with-pop3.patch
+  - Rebased fetchmailconf-no-more-future.patch
+
+-------------------------------------------------------------------

Old:
----
  fetchmail-6.4.38.tar.xz
  fetchmail-6.4.38.tar.xz.asc

New:
----
  fetchmail-6.5.1.tar.xz
  fetchmail-6.5.1.tar.xz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fetchmail.spec ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.325644615 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.329644781 +0100
@@ -21,13 +21,13 @@
   %define _fillupdir %{_localstatedir}/adm/fillup-templates
 %endif
 Name:           fetchmail
-Version:        6.4.38
+Version:        6.5.1
 Release:        0
 Summary:        Full-Featured POP and IMAP Mail Retrieval Daemon
 License:        GPL-2.0-or-later
 URL:            https://www.fetchmail.info/
-Source0:        
https://sourceforge.net/projects/%{name}/files/branch_6.4/%{name}-%{version}.tar.xz
-Source1:        
https://sourceforge.net/projects/%{name}/files/branch_6.4/%{name}-%{version}.tar.xz.asc
+Source0:        
https://sourceforge.net/projects/%{name}/files/branch_6.5/%{name}-%{version}.tar.xz
+Source1:        
https://sourceforge.net/projects/%{name}/files/branch_6.5/%{name}-%{version}.tar.xz.asc
 Source2:        %{name}.logrotate
 Source3:        sysconfig.%{name}
 Source5:        %{name}.keyring

++++++ fetchmail-6.3.8-smtp_errors.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.361646114 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.365646280 +0100
@@ -6,11 +6,11 @@
 # be considered that important.
 # 2) use the 501 error code to mark spam - in such a case
 # the 'antispam' option should be used
-Index: fetchmail-6.4.1/sink.c
+Index: fetchmail-6.5.1/sink.c
 ===================================================================
---- fetchmail-6.4.1.orig/sink.c
-+++ fetchmail-6.4.1/sink.c
-@@ -536,6 +536,19 @@ static int handle_smtp_report(struct que
+--- fetchmail-6.5.1.orig/sink.c
++++ fetchmail-6.5.1/sink.c
+@@ -526,6 +526,19 @@ static int handle_smtp_report(struct que
        free(responses[0]);
        return(PS_TRANSIENT);
  
@@ -30,7 +30,7 @@
      default:
        /* bounce non-transient errors back to the sender */
        if (smtperr >= 500 && smtperr <= 599)
-@@ -601,7 +614,7 @@ static int handle_smtp_report_without_bo
+@@ -591,7 +604,7 @@ static int handle_smtp_report_without_bo
      case 553: /* invalid sending domain */
        return(PS_REFUSED);
  

++++++ fetchmail-6.4.38.tar.xz -> fetchmail-6.5.1.tar.xz ++++++
++++ 105899 lines of diff (skipped)

++++++ fetchmail-FAQ-list-gmail-options-including-oauthbearer-and-app.patch 
++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.709660610 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.713660777 +0100
@@ -8,15 +8,15 @@
  fetchmail-FAQ.html |   24 +++++++++++++++++++++---
  1 file changed, 21 insertions(+), 3 deletions(-)
 
---- a/fetchmail-FAQ.html
-+++ b/fetchmail-FAQ.html
-@@ -1949,9 +1949,27 @@ sites.)</p>
- <p>Google has started pushing towards more complex authentication
- schemes based on OAuth 2.0 that require clients and users
- to jump through quite a few hoops, and use web browsers for signing in.
--If this hinders access to your account through fetchmail, you may need to 
turn on access for "less secure apps" at <a
--    
href="https://myaccount.google.com/lesssecureapps";>https://myaccount.google.com/lesssecureapps</a>.<br/>
--It is disputable whether an application that does not include web
+Index: fetchmail-6.5.1/fetchmail-FAQ.html
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail-FAQ.html
++++ fetchmail-6.5.1/fetchmail-FAQ.html
+@@ -1956,12 +1956,28 @@ authentication schemes based on OAuth 2.
+ users to jump through quite a few hoops, and use web browsers for
+ signing in, and software vendors to hand in their software for
+ sometimes paid reviews. Such is not going to happen for fetchmail.
++ 
 +If this hinders access to your account through fetchmail, you have some
 +options:</p>
 +<ul>
@@ -37,8 +37,13 @@
 +      But G-suite administrators are more likely to have disabled
 +      this option than "App Password"s.</li>
 +</ul>
-+<p>It is disputable whether an application that does not include web
+ 
+-If this hinders access to your account through fetchmail, you may
+-need to turn on access for "less secure apps", or create an application or 
service specific password.
+-             
+-For Google, this - at some point in time - used to live at <a
+-    
href="https://myaccount.google.com/lesssecureapps";>https://myaccount.google.com/lesssecureapps</a>.<br/>
+ It is disputable whether an application that does not include web
  browsing capabilities or heavy-weight libraries is "less secure" as
  Google claims.</p>
- 
 

++++++ fetchmail-add-contrib-fetchnmail-oauth2.py-token-acquisition-u.patch 
++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.725661276 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.729661443 +0100
@@ -11,8 +11,10 @@
  3 files changed, 575 insertions(+), 1 deletion(-)
  create mode 100755 contrib/fetchmail-oauth2.py
 
---- a/contrib/README
-+++ b/contrib/README
+Index: fetchmail-6.5.1/contrib/README
+===================================================================
+--- fetchmail-6.5.1.orig/contrib/README
++++ fetchmail-6.5.1/contrib/README
 @@ -181,6 +181,12 @@ sendmail 8.11.0 with multidrop.
  
  Watchdog script to check whether fetchmail is working in daemon mode.
@@ -26,8 +28,10 @@
  ### mold-remover.py
  
  A short python script to remove old read mail from a pop3 mailserver.
+Index: fetchmail-6.5.1/contrib/fetchmail-oauth2.py
+===================================================================
 --- /dev/null
-+++ b/contrib/fetchmail-oauth2.py
++++ fetchmail-6.5.1/contrib/fetchmail-oauth2.py
 @@ -0,0 +1,567 @@
 +#!/usr/bin/python
 +#
@@ -596,9 +600,11 @@
 +
 +if __name__ == '__main__':
 +  main(sys.argv)
---- a/fetchmail.man
-+++ b/fetchmail.man
-@@ -1073,7 +1073,8 @@ External tools are necessary to obtain
+Index: fetchmail-6.5.1/fetchmail.man
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.man
++++ fetchmail-6.5.1/fetchmail.man
+@@ -1181,7 +1181,8 @@ External tools are necessary to obtain
  such tokens.  Access tokens often expire fairly quickly (e.g. 1 hour),
  and new ones need to be generated from renewal tokens, so the
  "passwordfile", "passwordfd", or "pwmd_*" options may be useful.  See the

++++++ fetchmail-add-imap-oauthbearer-support.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.745662109 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.749662276 +0100
@@ -17,9 +17,11 @@
  rcfile_l.l       |    1 
  8 files changed, 137 insertions(+), 5 deletions(-)
 
---- a/conf.c
-+++ b/conf.c
-@@ -288,6 +288,8 @@ void dump_config(struct runctl *runp, st
+Index: fetchmail-6.5.1/conf.c
+===================================================================
+--- fetchmail-6.5.1.orig/conf.c
++++ fetchmail-6.5.1/conf.c
+@@ -284,6 +284,8 @@ void dump_config(struct runctl *runp, st
                stringdump("auth", "otp");
            else if (ctl->server.authenticate == A_MSN)
                stringdump("auth", "msn");
@@ -28,10 +30,12 @@
  
  #ifdef HAVE_RES_SEARCH
            booldump("dns", ctl->server.dns);
---- a/fetchmail.c
-+++ b/fetchmail.c
-@@ -1783,6 +1783,9 @@ static void dump_params (struct runctl *
-       case A_SSH:
+Index: fetchmail-6.5.1/fetchmail.c
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.c
++++ fetchmail-6.5.1/fetchmail.c
+@@ -1804,6 +1804,9 @@ static void dump_params (struct runctl *
+       case A_IMPLICIT:
            printf(GT_("  End-to-end encryption assumed.\n"));
            break;
 +      case A_OAUTHBEARER:
@@ -40,17 +44,19 @@
        }
        if (ctl->server.principal != (char *) NULL)
            printf(GT_("  Mail service principal is: %s\n"), 
ctl->server.principal);
---- a/fetchmail.h
-+++ b/fetchmail.h
-@@ -79,6 +79,7 @@ struct addrinfo;
- #define               A_SSH           8       /* authentication at session 
level */
+Index: fetchmail-6.5.1/fetchmail.h
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.h
++++ fetchmail-6.5.1/fetchmail.h
+@@ -64,6 +64,7 @@ struct addrinfo;
+ #define               A_IMPLICIT      8       /* authentication at session 
level */
  #define               A_MSN           9       /* same as NTLM with keyword 
MSN */
  #define               A_EXTERNAL      10      /* external authentication 
(client cert) */
 +#define                       A_OAUTHBEARER   11      /** oauth2 access token 
(not password) */
  
  /* some protocols or authentication types (KERBEROS, GSSAPI, SSH) don't
   * require a password */
-@@ -114,6 +115,7 @@ struct addrinfo;
+@@ -99,6 +100,7 @@ struct addrinfo;
  #define               MSGBUFSIZE      8192
  
  #define               NAMELEN         64      /* max username length */
@@ -58,18 +64,22 @@
  #define               PASSWORDLEN     256     /* max password length */
  #define               DIGESTLEN       33      /* length of MD5 digest */
  
---- a/fetchmail.man
-+++ b/fetchmail.man
-@@ -1006,7 +1006,7 @@ AUTHENTICATION below for details).  The
+Index: fetchmail-6.5.1/fetchmail.man
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.man
++++ fetchmail-6.5.1/fetchmail.man
+@@ -1113,8 +1113,8 @@ AUTHENTICATION below for details).  The
  \&\fBpassword\fP, \fBkerberos_v5\fP, \fBkerberos\fP (or, for
  excruciating exactness, \fBkerberos_v4\fP), \fBgssapi\fP,
  \fBcram\-md5\fP, \fBotp\fP, \fBntlm\fP, \fBmsn\fP (only for POP3),
--\fBexternal\fP (only IMAP) and \fBssh\fP.
-+\fBexternal\fP (only IMAP), \fBssh\fP and \fBoauthbearer\fP (only IMAP).
+-\fBexternal\fP (only IMAP) and \fBimplicit\fP (\fBssh\fP is understood
+-as alias for \fBimplicit\fP).
++\fBexternal\fP (only IMAP),  \fBimplicit\fP (\fBssh\fP is understood
++as alias for \fBimplicit\fP) and \fBoauthbearer\fP (only IMAP).
  When \fBany\fP (the default) is specified, fetchmail tries
  first methods that do not require a password (EXTERNAL, GSSAPI, KERBEROS\ IV,
  KERBEROS\ 5); then it looks for methods that mask your password
-@@ -1031,8 +1031,24 @@ authentication.  This option does not wo
+@@ -1139,8 +1139,24 @@ authentication.  This option does not wo
  in line with RFC-2743 and IANA registrations, see
  .UR https://www.iana.org/assignments/gssapi-service-names/
  Generic Security Service Application Program Interface 
(GSSAPI)/Kerberos/Simple
@@ -96,31 +106,35 @@
  .SS Miscellaneous Options
  .TP
  .B \-f <pathname> | \-\-fetchmailrc <pathname>
-@@ -2325,7 +2341,9 @@ Legal protocol identifiers for use with
+@@ -2475,7 +2491,9 @@ Legal protocol identifiers for use with
  .PP
  Legal authentication types are 'any', 'password', 'kerberos',
  \&'kerberos_v4', 'kerberos_v5' and 'gssapi', 'cram\-md5', 'otp', 'msn'
--(only for POP3), 'ntlm', 'ssh', 'external' (only IMAP).
-+(only for POP3), 'ntlm', 'ssh', 'external' (only IMAP),
+-(only for POP3), 'ntlm', 'implicit', 'external' (only IMAP).
++(only for POP3), 'ntlm', 'implicit', 'external' (only IMAP),
 +'oauthbearer' (only for IMAP; requires authentication token in
 +place of password).
  The 'password' type specifies
  authentication by normal transmission of a password (the password may be
  plain text or subject to protocol-specific encryption as in CRAM-MD5);
---- a/fetchmailconf.py
-+++ b/fetchmailconf.py
-@@ -500,7 +500,7 @@ defaultports = {"auto":None,
+Index: fetchmail-6.5.1/fetchmailconf.py
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmailconf.py
++++ fetchmail-6.5.1/fetchmailconf.py
+@@ -499,7 +499,7 @@ defaultports = {"auto":None,
                  "ODMR":"odmr"}
  
- authlist = ("any", "password", "gssapi", "kerberos", "ssh", "otp",
+ authlist = ("any", "password", "gssapi", "kerberos", "implicit", "otp",
 -            "msn", "ntlm")
 +            "msn", "ntlm", "oauthbearer")
  
  listboxhelp = {
      'title' : 'List Selection Help',
---- a/imap.c
-+++ b/imap.c
-@@ -26,6 +26,10 @@
+Index: fetchmail-6.5.1/imap.c
+===================================================================
+--- fetchmail-6.5.1.orig/imap.c
++++ fetchmail-6.5.1/imap.c
+@@ -24,6 +24,10 @@
  #define IMAP4         0       /* IMAP4 rev 0, RFC1730 */
  #define IMAP4rev1     1       /* IMAP4 rev 1, RFC2060 */
  
@@ -131,7 +145,7 @@
  /* global variables: please reinitialize them explicitly for proper
   * working in daemon mode */
  
-@@ -51,6 +55,8 @@ static void clear_sessiondata(void) {
+@@ -49,6 +53,8 @@ static void clear_sessiondata(void) {
   * a const initializer */
  const char *const capa_begin = " [CAPABILITY "; const unsigned capa_len = 13;
  
@@ -140,7 +154,7 @@
  /* mailbox variables initialized in imap_getrange() */
  static int count = 0, oldcount = 0, recentcount = 0, unseen = 0, deletions = 
0;
  static unsigned int startcount = 1;
-@@ -266,6 +272,21 @@ static int imap_response(int sock, char
+@@ -262,6 +268,21 @@ static int imap_response(int sock, char
        if (ok != PS_SUCCESS)
            return(ok);
  
@@ -162,7 +176,7 @@
        /* all tokens in responses are caseblind */
        for (cp = buf; *cp; cp++)
            if (islower((unsigned char)*cp))
-@@ -396,6 +417,69 @@ static int do_imap_ntlm(int sock, struct
+@@ -394,6 +415,69 @@ static int do_imap_ntlm(int sock, struct
  }
  #endif /* NTLM */
  
@@ -232,7 +246,7 @@
  static void imap_canonicalize(char *result, char *raw, size_t maxlen)
  /* encode an IMAP password as per RFC1730's quoting conventions */
  {
-@@ -582,6 +666,26 @@ static int imap_getauth(int sock, struct
+@@ -584,6 +668,26 @@ static int imap_getauth(int sock, struct
                         for future maintenance */
      (void)ok;
  
@@ -259,9 +273,11 @@
      /* Yahoo hack - we'll just try ID if it was offered by the server,
       * and IGNORE errors. */
      {
---- a/options.c
-+++ b/options.c
-@@ -421,6 +421,8 @@ int parsecmdline (int argc /** argument
+Index: fetchmail-6.5.1/options.c
+===================================================================
+--- fetchmail-6.5.1.orig/options.c
++++ fetchmail-6.5.1/options.c
+@@ -395,6 +395,8 @@ int parsecmdline (int argc /** argument
                ctl->server.authenticate = A_ANY;
            else if (strcmp(optarg, "msn") == 0)
                ctl->server.authenticate = A_MSN;
@@ -270,14 +286,16 @@
            else {
                fprintf(stderr,GT_("Invalid authentication `%s' specified.\n"), 
optarg);
                errflag++;
---- a/rcfile_l.l
-+++ b/rcfile_l.l
-@@ -106,6 +106,7 @@ cram(-md5)?        { SETSTATE(0); yylval.proto
+Index: fetchmail-6.5.1/rcfile_l.l
+===================================================================
+--- fetchmail-6.5.1.orig/rcfile_l.l
++++ fetchmail-6.5.1/rcfile_l.l
+@@ -103,6 +103,7 @@ cram(-md5)?        { SETSTATE(0); yylval.proto
  msn           { SETSTATE(0); yylval.proto = A_MSN; return AUTHTYPE;}
  ntlm          { SETSTATE(0); yylval.proto = A_NTLM; return AUTHTYPE;}
  <AUTH>password        { SETSTATE(0); yylval.proto = A_PASSWORD; return 
AUTHTYPE;}
 +oauthbearer   { SETSTATE(0); yylval.proto = A_OAUTHBEARER; return AUTHTYPE;}
  timeout               { return TIMEOUT;}
+ idletimeout   { return IDLETIMEOUT;}
  envelope      { return ENVELOPE; }
- qvirtual      { return QVIRTUAL; }
 

++++++ fetchmail-add-passwordfile-and-passwordfd-options.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.765662942 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.769663109 +0100
@@ -13,18 +13,20 @@
  rcfile_y.y    |    6 ++++
  6 files changed, 145 insertions(+), 3 deletions(-)
 
---- a/fetchmail.c
-+++ b/fetchmail.c
-@@ -451,7 +451,7 @@ int main(int argc, char **argv)
+Index: fetchmail-6.5.1/fetchmail.c
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.c
++++ fetchmail-6.5.1/fetchmail.c
+@@ -471,7 +471,7 @@ int main(int argc, char **argv)
                /* Server won't care what the password is, but there
                   must be some non-null string here.  */
                ctl->password = ctl->remotename;
 -          else
 +          else if (!ctl->passwordfile && ctl->passwordfd==-1)
            {
-               netrc_entry *p;
+               const netrc_entry *p;
  
-@@ -618,8 +618,81 @@ int main(int argc, char **argv)
+@@ -649,8 +649,81 @@ int main(int argc, char **argv)
        if (ctl->active && !(implicitmode && ctl->server.skip)
                && !NO_PASSWORD(ctl) && !ctl->password)
        {
@@ -107,7 +109,7 @@
                fprintf(stderr,
                        GT_("fetchmail: can't find a password for %s@%s.\n"),
                        ctl->remotename, ctl->server.pollname);
-@@ -1035,6 +1108,10 @@ static void optmerge(struct query *h2, s
+@@ -1046,6 +1119,10 @@ static void optmerge(struct query *h2, s
      FLAG_MERGE(wildcard);
      STRING_MERGE(remotename);
      STRING_MERGE(password);
@@ -118,17 +120,19 @@
      STRING_MERGE(mda);
      STRING_MERGE(bsmtp);
      FLAG_MERGE(listener);
-@@ -1099,6 +1176,7 @@ static int load_params(int argc, char **
+@@ -1112,6 +1189,7 @@ static int load_params(int argc, char **
      def_opts.smtp_socket = -1;
      def_opts.smtpaddress = (char *)0;
      def_opts.smtpname = (char *)0;
 +    def_opts.passwordfd = -1;
      def_opts.server.protocol = P_AUTO;
      def_opts.server.timeout = CLIENT_TIMEOUT;
-     def_opts.server.esmtp_name = user;
---- a/fetchmail.h
-+++ b/fetchmail.h
-@@ -326,6 +326,8 @@ struct query
+     def_opts.server.idle_timeout = CLIENT_IDLE_TIMEOUT;
+Index: fetchmail-6.5.1/fetchmail.h
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.h
++++ fetchmail-6.5.1/fetchmail.h
+@@ -312,6 +312,8 @@ struct query
      int wildcard;             /* should unmatched names be passed through */
      char *remotename;         /* remote login name to use */
      char *password;           /* remote password to use */
@@ -137,9 +141,11 @@
      struct idlist *mailboxes; /* list of mailboxes to check */
  
      /* per-forwarding-target data */
---- a/fetchmail.man
-+++ b/fetchmail.man
-@@ -949,6 +949,37 @@ The default is your login name on the cl
+Index: fetchmail-6.5.1/fetchmail.man
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.man
++++ fetchmail-6.5.1/fetchmail.man
+@@ -1056,6 +1056,37 @@ The default is your login name on the cl
  \fBfetchmail\fP.
  See USER AUTHENTICATION below for a complete description.
  .TP
@@ -177,7 +183,7 @@
  .B \-I <specification> | \-\-interface <specification>
  (Keyword: interface)
  .br
-@@ -1040,7 +1071,8 @@ setting also allows the non-standard "xo
+@@ -1148,7 +1179,8 @@ setting also allows the non-standard "xo
  the same token) if the server only claims to support "xoauth2".
  External tools are necessary to obtain
  such tokens.  Access tokens often expire fairly quickly (e.g. 1 hour),
@@ -187,7 +193,7 @@
  oauth2.py script from
  .URL https://github.com/google/gmail-oauth2-tools/wiki/OAuth2DotPyRunThrough 
"Google's Oauth2 Run Through" ,
  and other oauth2 documentation.  For services like gmail, an "App Password"
-@@ -1953,6 +1985,12 @@ T}
+@@ -2100,6 +2132,12 @@ T}
  pass[word]    \&      \&      T{
  Specify remote account password
  T}
@@ -200,9 +206,11 @@
  ssl           \&      \&      T{
  Connect to server over the specified base protocol using SSL encryption
  T}
---- a/options.c
-+++ b/options.c
-@@ -31,6 +31,8 @@ enum {
+Index: fetchmail-6.5.1/options.c
+===================================================================
+--- fetchmail-6.5.1.orig/options.c
++++ fetchmail-6.5.1/options.c
+@@ -29,6 +29,8 @@ enum {
      LA_POSTMASTER,
      LA_NOBOUNCE,
      LA_AUTH,
@@ -211,7 +219,7 @@
      LA_FETCHDOMAINS,
      LA_BSMTP,
      LA_LMTP,
-@@ -94,6 +96,8 @@ static const struct option longoptions[]
+@@ -98,6 +100,8 @@ static const struct option longoptions[]
    {"port",    required_argument, (int *) 0, 'P' },
    {"service", required_argument, (int *) 0, 'P' },
    {"auth",    required_argument, (int *) 0, LA_AUTH},
@@ -220,7 +228,7 @@
    {"timeout", required_argument, (int *) 0, 't' },
    {"envelope",        required_argument, (int *) 0, 'E' },
    {"qvirtual",        required_argument, (int *) 0, 'Q' },
-@@ -261,6 +265,7 @@ int parsecmdline (int argc /** argument
+@@ -231,6 +235,7 @@ int parsecmdline (int argc /** argument
  
      memset(ctl, '\0', sizeof(struct query));    /* start clean */
      ctl->smtp_socket = -1;
@@ -228,7 +236,7 @@
  
      while (!errflag && 
           (c = getopt_long(argc,argv,shortoptions,
-@@ -428,6 +433,17 @@ int parsecmdline (int argc /** argument
+@@ -402,6 +407,17 @@ int parsecmdline (int argc /** argument
                errflag++;
            }
            break;
@@ -246,9 +254,11 @@
        case 't':
            ctl->server.timeout = xatoi(optarg, &errflag);
            if (ctl->server.timeout == 0)
---- a/rcfile_l.l
-+++ b/rcfile_l.l
-@@ -118,6 +118,8 @@ accept             { return ACCEPT; }
+Index: fetchmail-6.5.1/rcfile_l.l
+===================================================================
+--- fetchmail-6.5.1.orig/rcfile_l.l
++++ fetchmail-6.5.1/rcfile_l.l
+@@ -116,6 +116,8 @@ accept             { return ACCEPT; }
  reject                { return REJECT_; }
  
  user(name)?   {SETSTATE(NAME); return USERNAME; }
@@ -257,17 +267,19 @@
  <INITIAL,NAME>pass(word)?     {SETSTATE(NAME); return PASSWORD; }
  folder(s)?    { return FOLDER; }
  smtp(host)?   { return SMTPHOST; }
---- a/rcfile_y.y
-+++ b/rcfile_y.y
-@@ -63,6 +63,7 @@ extern char * yytext;
+Index: fetchmail-6.5.1/rcfile_y.y
+===================================================================
+--- fetchmail-6.5.1.orig/rcfile_y.y
++++ fetchmail-6.5.1/rcfile_y.y
+@@ -62,6 +62,7 @@ void yyerror (const char *s)
  %token DEFAULTS POLL SKIP VIA AKA LOCALDOMAINS PROTOCOL
- %token AUTHENTICATE TIMEOUT KPOP SDPS ENVELOPE QVIRTUAL
+ %token AUTHENTICATE TIMEOUT IDLETIMEOUT KPOP SDPS ENVELOPE QVIRTUAL
  %token USERNAME PASSWORD FOLDER SMTPHOST FETCHDOMAINS MDA BSMTP LMTP
 +%token PASSWORDFILE PASSWORDFD
  %token SMTPADDRESS SMTPNAME SPAMRESPONSE PRECONNECT POSTCONNECT LIMIT WARNINGS
  %token INTERFACE MONITOR PLUGIN PLUGOUT
  %token IS HERE THERE TO MAP
-@@ -307,6 +308,8 @@ user_option        : TO mapping_list HERE
+@@ -314,6 +315,8 @@ user_option        : TO mapping_list HERE
  
                | IS STRING THERE       {current.remotename  = $2;}
                | PASSWORD STRING       {current.password    = $2;}
@@ -276,15 +288,15 @@
                | FOLDER folder_list
                | SMTPHOST smtp_list
                | FETCHDOMAINS fetch_list
-@@ -505,6 +508,7 @@ static void reset_server(const char *nam
+@@ -495,6 +498,7 @@ static void reset_server(const char *nam
      trailer = FALSE;
      memset(&current,'\0',sizeof(current));
      current.smtp_socket = -1;
 +    current.passwordfd = -1;
      current.server.pollname = xstrdup(name);
      current.server.skip = skip;
-     current.server.principal = (char *)NULL;
-@@ -526,6 +530,7 @@ static void user_reset(void)
+ }
+@@ -515,6 +519,7 @@ static void user_reset(void)
  
      memset(&current, '\0', sizeof(current));
      current.smtp_socket = -1;
@@ -292,7 +304,7 @@
  
      current.server = save;
  }
-@@ -546,6 +551,7 @@ struct query *hostalloc(struct query *in
+@@ -535,6 +540,7 @@ struct query *hostalloc(struct query *in
      {
        memset(node, '\0', sizeof(struct query));
        node->smtp_socket = -1;

++++++ fetchmail-add-query_to64_outsize-utility-function.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.785663775 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.789663942 +0100
@@ -9,8 +9,10 @@
  fetchmail.h |    1 +
  2 files changed, 8 insertions(+)
 
---- a/base64.c
-+++ b/base64.c
+Index: fetchmail-6.5.1/base64.c
+===================================================================
+--- fetchmail-6.5.1.orig/base64.c
++++ fetchmail-6.5.1/base64.c
 @@ -66,6 +66,13 @@ fail:
      return rc;
  }
@@ -25,9 +27,11 @@
  int from64tobits(void *out_, const char *in, int maxlen)
  /* base 64 to raw bytes in quasi-big-endian order, returning count of bytes */
  /* maxlen limits output buffer size, set to zero to ignore */
---- a/fetchmail.h
-+++ b/fetchmail.h
-@@ -642,6 +642,7 @@ int prc_filecheck(const char *, const fl
+Index: fetchmail-6.5.1/fetchmail.h
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.h
++++ fetchmail-6.5.1/fetchmail.h
+@@ -611,6 +611,7 @@ int prc_filecheck(const char *, const fl
  /* base64.c */
  unsigned len64frombits(unsigned inlen); /** calculate length needed to encode 
inlen octets. warnings: 1. caller needs to add 1 for a trailing \0 byte 
himself. 2. returns 0 for inlen 0! */
  int to64frombits(char *, const void *, int inlen, size_t outlen);

++++++ fetchmail-bump-max-passwordlen-to-1bytes.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.805664608 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.809664775 +0100
@@ -8,9 +8,11 @@
  fetchmail.h |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/fetchmail.h
-+++ b/fetchmail.h
-@@ -116,7 +116,7 @@ struct addrinfo;
+Index: fetchmail-6.5.1/fetchmail.h
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.h
++++ fetchmail-6.5.1/fetchmail.h
+@@ -101,7 +101,7 @@ struct addrinfo;
  
  #define               NAMELEN         64      /* max username length */
  /* oauth2 access tokens seem to be about 130 characters; make this longer: */

++++++ fetchmail-give-each-ctl-it-s-own-copy-of-password.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.825665442 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.829665608 +0100
@@ -13,9 +13,11 @@
  fetchmail.c |   12 ++++++++++--
  1 file changed, 10 insertions(+), 2 deletions(-)
 
---- a/fetchmail.c
-+++ b/fetchmail.c
-@@ -450,7 +450,7 @@ int main(int argc, char **argv)
+Index: fetchmail-6.5.1/fetchmail.c
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.c
++++ fetchmail-6.5.1/fetchmail.c
+@@ -470,7 +470,7 @@ int main(int argc, char **argv)
            if (NO_PASSWORD(ctl))
                /* Server won't care what the password is, but there
                   must be some non-null string here.  */
@@ -23,8 +25,8 @@
 +              ctl->password = xstrdup(ctl->remotename);
            else if (!ctl->passwordfile && ctl->passwordfd==-1)
            {
-               netrc_entry *p;
-@@ -1107,7 +1107,15 @@ static void optmerge(struct query *h2, s
+               const netrc_entry *p;
+@@ -1118,7 +1118,15 @@ static void optmerge(struct query *h2, s
  
      FLAG_MERGE(wildcard);
      STRING_MERGE(remotename);

++++++ fetchmail-increase-max-password-length-to-handle-oauth-tokens.patch 
++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.845666275 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.849666441 +0100
@@ -17,9 +17,11 @@
  fetchmail.h |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/fetchmail.h
-+++ b/fetchmail.h
-@@ -116,7 +116,7 @@ struct addrinfo;
+Index: fetchmail-6.5.1/fetchmail.h
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.h
++++ fetchmail-6.5.1/fetchmail.h
+@@ -101,7 +101,7 @@ struct addrinfo;
  
  #define               NAMELEN         64      /* max username length */
  /* oauth2 access tokens seem to be about 130 characters; make this longer: */

++++++ fetchmail-re-read-passwordfile-on-every-poll.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.865667108 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.865667108 +0100
@@ -9,9 +9,11 @@
  fetchmail.man |    9 +----
  2 files changed, 69 insertions(+), 40 deletions(-)
 
---- a/fetchmail.c
-+++ b/fetchmail.c
-@@ -650,48 +650,19 @@ int main(int argc, char **argv)
+Index: fetchmail-6.5.1/fetchmail.c
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.c
++++ fetchmail-6.5.1/fetchmail.c
+@@ -681,48 +681,19 @@ int main(int argc, char **argv)
                }
  
                ctl->password = xstrdup(msg);
@@ -65,7 +67,7 @@
            } else if (!isatty(0)) {
                fprintf(stderr,
                        GT_("fetchmail: can't find a password for %s@%s.\n"),
-@@ -707,6 +678,8 @@ int main(int argc, char **argv)
+@@ -739,6 +710,8 @@ int main(int argc, char **argv)
                ctl->password = xstrdup((char *)fm_getpassword(tmpbuf));
                free(tmpbuf);
            }
@@ -74,7 +76,7 @@
        }
      }
  
-@@ -897,6 +870,65 @@ int main(int argc, char **argv)
+@@ -938,6 +911,65 @@ int main(int argc, char **argv)
  
                    dofastuidl = 0; /* this is reset in the driver if required 
*/
  
@@ -140,9 +142,11 @@
                    querystatus = query_host(ctl);
  
                    if (NUM_NONZERO(ctl->fastuidl))
---- a/fetchmail.man
-+++ b/fetchmail.man
-@@ -954,12 +954,9 @@ See USER AUTHENTICATION below for a comp
+Index: fetchmail-6.5.1/fetchmail.man
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.man
++++ fetchmail-6.5.1/fetchmail.man
+@@ -1061,12 +1061,9 @@ See USER AUTHENTICATION below for a comp
  .br
  Specifies a file name from which to read the first line to use as the 
password.
  Useful if something changes the password/token often without regenerating a
@@ -157,7 +161,7 @@
  .TP
  .B \-\-passwordfd <integer>
  (Keyword: passwordfd)
-@@ -972,7 +969,7 @@ although it could also be a redirected i
+@@ -1079,7 +1076,7 @@ although it could also be a redirected i
  (equivalent to "fetchmail \-\-passwordfd 5 5</path/to/file").
  Useful if something wants to manage password ownership more securely
  than files, or if the password/token changes often,

++++++ fetchmail-support-oauthbearer-xoauth2-with-pop3.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.881667774 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.885667941 +0100
@@ -16,9 +16,11 @@
  create mode 100644 oauth2.c
  create mode 100644 oauth2.h
 
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -74,7 +74,7 @@ fetchmail_SOURCES=   fetchmail.h getopt.h
+Index: fetchmail-6.5.1/Makefile.am
+===================================================================
+--- fetchmail-6.5.1.orig/Makefile.am
++++ fetchmail-6.5.1/Makefile.am
+@@ -63,7 +63,7 @@ fetchmail_SOURCES=   fetchmail.h getopt.h
                fetchmail.c env.c idle.c options.c daemon.c \
                driver.c transact.c sink.c smtp.c \
                idlist.c uid.c mxget.c md5ify.c cram.c gssapi.c \
@@ -27,38 +29,42 @@
                unmime.c conf.c checkalias.c uid_db.h uid_db.c\
                lock.h lock.c \
                rcfile_l.l rcfile_y.y \
---- a/fetchmail.man
-+++ b/fetchmail.man
-@@ -1006,7 +1006,7 @@ AUTHENTICATION below for details).  The
- \&\fBpassword\fP, \fBkerberos_v5\fP, \fBkerberos\fP (or, for
+Index: fetchmail-6.5.1/fetchmail.man
+===================================================================
+--- fetchmail-6.5.1.orig/fetchmail.man
++++ fetchmail-6.5.1/fetchmail.man
+@@ -1114,7 +1114,7 @@ AUTHENTICATION below for details).  The
  excruciating exactness, \fBkerberos_v4\fP), \fBgssapi\fP,
  \fBcram\-md5\fP, \fBotp\fP, \fBntlm\fP, \fBmsn\fP (only for POP3),
--\fBexternal\fP (only IMAP), \fBssh\fP and \fBoauthbearer\fP (only IMAP).
-+\fBexternal\fP (only IMAP), \fBssh\fP and \fBoauthbearer\fP (requires token).
+ \fBexternal\fP (only IMAP),  \fBimplicit\fP (\fBssh\fP is understood
+-as alias for \fBimplicit\fP) and \fBoauthbearer\fP (only IMAP).
++as alias for \fBimplicit\fP) and \fBoauthbearer\fP (requires token).
  When \fBany\fP (the default) is specified, fetchmail tries
  first methods that do not require a password (EXTERNAL, GSSAPI, KERBEROS\ IV,
  KERBEROS\ 5); then it looks for methods that mask your password
-@@ -2342,8 +2342,7 @@ Legal protocol identifiers for use with
+@@ -2492,8 +2492,7 @@ Legal protocol identifiers for use with
  Legal authentication types are 'any', 'password', 'kerberos',
  \&'kerberos_v4', 'kerberos_v5' and 'gssapi', 'cram\-md5', 'otp', 'msn'
- (only for POP3), 'ntlm', 'ssh', 'external' (only IMAP),
+ (only for POP3), 'ntlm', 'implicit', 'external' (only IMAP),
 -'oauthbearer' (only for IMAP; requires authentication token in
 -place of password).
 +'oauthbearer' (requires authentication token in place of password).
  The 'password' type specifies
  authentication by normal transmission of a password (the password may be
  plain text or subject to protocol-specific encryption as in CRAM-MD5);
---- a/imap.c
-+++ b/imap.c
-@@ -17,6 +17,7 @@
+Index: fetchmail-6.5.1/imap.c
+===================================================================
+--- fetchmail-6.5.1.orig/imap.c
++++ fetchmail-6.5.1/imap.c
+@@ -15,6 +15,7 @@
+ #include  <stdlib.h>
  #include  <limits.h>
  #include  <errno.h>
- #endif
-+#include  "oauth2.h"
++#include "oauth2.h"
  #include  "socket.h"
  
  #include  "i18n.h"
-@@ -419,63 +420,23 @@ static int do_imap_ntlm(int sock, struct
+@@ -417,63 +418,23 @@ static int do_imap_ntlm(int sock, struct
  
  static int do_imap_oauthbearer(int sock, struct query *ctl,flag xoauth2)
  {
@@ -128,8 +134,10 @@
  
      return ok;
  }
+Index: fetchmail-6.5.1/oauth2.c
+===================================================================
 --- /dev/null
-+++ b/oauth2.c
++++ fetchmail-6.5.1/oauth2.c
 @@ -0,0 +1,61 @@
 +/*
 + * oauth2.c -- oauthbearer and xoauth2 support
@@ -192,8 +200,10 @@
 +
 +    return oauth2b64;
 +}
+Index: fetchmail-6.5.1/oauth2.h
+===================================================================
 --- /dev/null
-+++ b/oauth2.h
++++ fetchmail-6.5.1/oauth2.h
 @@ -0,0 +1,6 @@
 +#ifndef OAUTH2_H
 +#define OAUTH2_H
@@ -201,17 +211,19 @@
 +char *get_oauth2_string(struct query *ctl,flag xoauth2);
 +
 +#endif /*OAUTH2_H*/
---- a/pop3.c
-+++ b/pop3.c
-@@ -20,6 +20,7 @@
+Index: fetchmail-6.5.1/pop3.c
+===================================================================
+--- fetchmail-6.5.1.orig/pop3.c
++++ fetchmail-6.5.1/pop3.c
+@@ -17,6 +17,7 @@
+ #include  <stdlib.h>
  #include  <errno.h>
  
- #include  "fetchmail.h"
 +#include  "oauth2.h"
  #include  "socket.h"
  #include  "i18n.h"
  #include  "uid_db.h"
-@@ -52,6 +53,10 @@ static flag has_cram = FALSE;
+@@ -49,6 +50,10 @@ static flag has_cram = FALSE;
  static flag has_otp = FALSE;
  static flag has_ntlm = FALSE;
  static flag has_stls = FALSE;
@@ -222,7 +234,7 @@
  
  static void clear_sessiondata(void) {
      /* must match defaults above */
-@@ -135,12 +140,65 @@ static int pop3_ok (int sock, char *argb
+@@ -132,12 +137,65 @@ static int pop3_ok (int sock, char *argb
      char buf [POPBUFSIZE+1];
      char *bufp;
  
@@ -292,7 +304,7 @@
  
        while (isalpha((unsigned char)*bufp))
            bufp++;
-@@ -209,6 +267,8 @@ static int pop3_ok (int sock, char *argb
+@@ -206,6 +264,8 @@ static int pop3_ok (int sock, char *argb
  #endif
        if (argbuf != NULL)
            strcpy(argbuf,bufp);
@@ -301,7 +313,7 @@
      }
  
      return(ok);
-@@ -237,11 +297,13 @@ static int capa_probe(int sock)
+@@ -234,11 +294,13 @@ static int capa_probe(int sock)
  #ifdef NTLM_ENABLE
      has_ntlm = FALSE;
  #endif /* NTLM_ENABLE */
@@ -316,7 +328,7 @@
        char *cp;
  
        /* determine what authentication methods we have available */
-@@ -256,6 +318,10 @@ static int capa_probe(int sock)
+@@ -253,6 +315,10 @@ static int capa_probe(int sock)
            if (strstr(buffer, "STLS"))
                has_stls = TRUE;
  #endif /* SSL_ENABLE */
@@ -327,7 +339,7 @@
  
  #if defined(GSSAPI)
            if (strstr(buffer, "GSSAPI"))
-@@ -279,6 +345,12 @@ static int capa_probe(int sock)
+@@ -276,6 +342,12 @@ static int capa_probe(int sock)
  
            if (strstr(buffer, "CRAM-MD5"))
                has_cram = TRUE;
@@ -340,7 +352,7 @@
        }
      }
      done_capa = TRUE;
-@@ -295,6 +367,40 @@ static void set_peek_capable(struct quer
+@@ -292,6 +364,40 @@ static void set_peek_capable(struct quer
      peek_capable = !ctl->fetchall && (!ctl->keep || ctl->server.uidl);
  }
  
@@ -381,7 +393,7 @@
  static int pop3_getauth(int sock, struct query *ctl, char *greeting)
  /* apply for connection authorization */
  {
-@@ -374,6 +480,7 @@ static int pop3_getauth(int sock, struct
+@@ -371,6 +477,7 @@ static int pop3_getauth(int sock, struct
                (ctl->server.authenticate == A_KERBEROS_V5) ||
                (ctl->server.authenticate == A_OTP) ||
                (ctl->server.authenticate == A_CRAM_MD5) ||
@@ -389,7 +401,7 @@
                maybe_starttls(ctl))
        {
            if ((ok = capa_probe(sock)) != PS_SUCCESS)
-@@ -523,6 +630,19 @@ static int pop3_getauth(int sock, struct
+@@ -520,6 +627,19 @@ static int pop3_getauth(int sock, struct
        /*
         * OK, we have an authentication type now.
         */

++++++ fetchmailconf-no-more-future.patch ++++++
--- /var/tmp/diff_new_pack.SRnhdg/_old  2024-11-30 13:29:25.973671606 +0100
+++ /var/tmp/diff_new_pack.SRnhdg/_new  2024-11-30 13:29:25.977671772 +0100
@@ -1,46 +1,14 @@
-Index: fetchmail-6.4.37/fetchmailconf.py
+Index: fetchmail-6.5.1/fetchmailconf.py
 ===================================================================
---- fetchmail-6.4.37.orig/fetchmailconf.py
-+++ fetchmail-6.4.37/fetchmailconf.py
-@@ -3,21 +3,12 @@
+--- fetchmail-6.5.1.orig/fetchmailconf.py
++++ fetchmail-6.5.1/fetchmailconf.py
+@@ -3,7 +3,7 @@
  # A GUI configurator for generating fetchmail configuration files.
  # by Eric S. Raymond, <[email protected]>,
  # Matthias Andree <[email protected]>
 -# Requires Python with Tkinter, and the following OS-dependent services:
-+# Requires Python 3.4+ with Tkinter, and the following OS-dependent services:
++# Requires Python 3.7+ with Tkinter, and the following OS-dependent services:
  #     posix, posixpath, socket
  
  # WARNING: this needs to be updated for fetchmail 6.4's SSL options,
- # and other recent new options;
- 
--from __future__ import print_function
--from __future__ import division
--from past.builtins import execfile
--from future import standard_library
--standard_library.install_aliases()
--from builtins import str
--from builtins import range
--from past.utils import old_div
--from builtins import object
- import sys
- import time
- import os
-@@ -37,7 +28,7 @@ except:
- 
- VERSION = "1.63.5"
- 
--MIN_PY = (2, 7, 13)
-+MIN_PY = (3, 4, 0)
- if sys.version_info < MIN_PY:
-     sys.exit("fetchmailconf: Python %s.%s.%s or later is required.\n" % 
MIN_PY)
- 
-@@ -535,7 +526,7 @@ class LabeledEntry(Frame):
- def ButtonBar(frame, legend, ref, alternatives, depth, command):
- # array of radio buttons, caption to left, picking from a string list
-     bbar = Frame(frame)
--    width = old_div((len(alternatives)+1), depth)
-+    width = len(alternatives)+1 // depth
-     Label(bbar, text=legend).pack(side=LEFT)
-     for column in range(width):
-         subframe = Frame(bbar)
 

Reply via email to