Hello community,

here is the log from the commit of package offlineimap for openSUSE:Factory 
checked in at 2016-10-13 11:32:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/offlineimap (Old)
 and      /work/SRC/openSUSE:Factory/.offlineimap.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "offlineimap"

Changes:
--------
--- /work/SRC/openSUSE:Factory/offlineimap/offlineimap.changes  2016-09-26 
12:36:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.offlineimap.new/offlineimap.changes     
2016-10-13 11:32:51.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Oct 13 07:18:15 UTC 2016 - mimi...@gmail.com
+
+- update to 7.0.8
+- Import ui before threadutil to resolve circular dependency
+- Fix implicit call to unicode() from UI functions.
+- imapserver: minor code cleaning
+
+-------------------------------------------------------------------

Old:
----
  offlineimap-7.0.7.tar.gz

New:
----
  offlineimap-7.0.8.tar.gz

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

Other differences:
------------------
++++++ offlineimap.spec ++++++
--- /var/tmp/diff_new_pack.dU2aNt/_old  2016-10-13 11:32:52.000000000 +0200
+++ /var/tmp/diff_new_pack.dU2aNt/_new  2016-10-13 11:32:52.000000000 +0200
@@ -19,7 +19,7 @@
 %{!?_userunitdir:%define _userunitdir /usr/lib/systemd/user}
 
 Name:           offlineimap
-Version:        7.0.7
+Version:        7.0.8
 Release:        0
 Summary:        Powerful IMAP/Maildir Synchronization Tool
 License:        GPL-2.0+

++++++ offlineimap-7.0.7.tar.gz -> offlineimap-7.0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/Changelog.md 
new/offlineimap-7.0.8/Changelog.md
--- old/offlineimap-7.0.7/Changelog.md  2016-09-21 04:03:25.000000000 +0200
+++ new/offlineimap-7.0.8/Changelog.md  2016-10-08 10:10:56.000000000 +0200
@@ -15,6 +15,36 @@
 * The following excerpt is only usefull when rendered in the website.
 {:toc}
 
+### OfflineIMAP v7.0.8 (2016-10-08)
+
+#### Notes
+
+Very small release to fix the broken UI relying on Curses. Thanks for the
+contributors!
+
+#### Authors
+
+- Nicolas Sebrecht (4)
+- Ilias Tsitsimpis (1)
+- St├ęphane Albert (1)
+
+#### Features
+
+- Introduce contrib/README.md. [Nicolas Sebrecht]
+
+#### Fixes
+
+- Import ui before threadutil to resolve circular dependency. [Ilias 
Tsitsimpis]
+- Fix implicit call to unicode() from UI functions. [St├ęphane Albert]
+
+#### Changes
+
+- imapserver: minor code cleaning: reorder methods. [Nicolas Sebrecht]
+- website-doc.sh: print usage when no argument is given. [Nicolas Sebrecht]
+- Changelog: add remark about singlethreadperfolder in the resume. [Nicolas 
Sebrecht]
+
+
+
 ### OfflineIMAP v7.0.7 (2016-09-21)
 
 #### Notes
@@ -22,6 +52,8 @@
 With this release, IDLE mode is a bit improved regarding stability. Offlineimap
 learns the default path to the certificate for Gentoo.
 
+The singlethreadperfolder configuration option is marked stable.
+
 There are few improvements for logs and documentation. Minor code refactoring,
 too.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/contrib/README.md 
new/offlineimap-7.0.8/contrib/README.md
--- old/offlineimap-7.0.7/contrib/README.md     1970-01-01 01:00:00.000000000 
+0100
+++ new/offlineimap-7.0.8/contrib/README.md     2016-10-08 10:10:56.000000000 
+0200
@@ -0,0 +1,9 @@
+
+README
+======
+
+**This "./contrib" directory is where users share their own scripts and 
tools.**
+
+Everything here is submitted and maintained *by the users for the users*. 
You're
+welcome to add your own stuff. There is no barrier on your contributions here.
+We think it's expected to find contributions of various quality.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/docs/website-doc.sh 
new/offlineimap-7.0.8/docs/website-doc.sh
--- old/offlineimap-7.0.7/docs/website-doc.sh   2016-09-21 04:03:25.000000000 
+0200
+++ new/offlineimap-7.0.8/docs/website-doc.sh   2016-10-08 10:10:56.000000000 
+0200
@@ -126,7 +126,7 @@
 
 
 exit_code=0
-test "n$ARGS" = 'n' && ARG='usage' # no option passed
+test "n$ARGS" = 'n' && ARGS='usage' # no option passed
 for arg in $ARGS
 do
   # PWD was fixed at the very beginning.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/offlineimap/__init__.py 
new/offlineimap-7.0.8/offlineimap/__init__.py
--- old/offlineimap-7.0.7/offlineimap/__init__.py       2016-09-21 
04:03:25.000000000 +0200
+++ new/offlineimap-7.0.8/offlineimap/__init__.py       2016-10-08 
10:10:56.000000000 +0200
@@ -2,7 +2,7 @@
 
 __productname__ = 'OfflineIMAP'
 # Expecting trailing "-rcN" or "" for stable releases.
-__version__     = "7.0.7"
+__version__     = "7.0.8"
 __copyright__   = "Copyright 2002-2016 John Goerzen & contributors"
 __author__      = "John Goerzen"
 __author_email__= "offlineimap-proj...@lists.alioth.debian.org"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/offlineimap/folder/Base.py 
new/offlineimap-7.0.8/offlineimap/folder/Base.py
--- old/offlineimap-7.0.7/offlineimap/folder/Base.py    2016-09-21 
04:03:25.000000000 +0200
+++ new/offlineimap-7.0.8/offlineimap/folder/Base.py    2016-10-08 
10:10:56.000000000 +0200
@@ -98,6 +98,11 @@
         # FIMXE: remove calls of this. We have getname().
         return self.name
 
+    def __unicode__(self):
+        # NOTE(sheeprine): Implicit call to this by UIBase deletingflags() 
which
+        # fails if the str is utf-8
+        return self.name.decode('utf-8')
+
     @property
     def accountname(self):
         """Account name as string"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/offlineimap/imapserver.py 
new/offlineimap-7.0.8/offlineimap/imapserver.py
--- old/offlineimap-7.0.7/offlineimap/imapserver.py     2016-09-21 
04:03:25.000000000 +0200
+++ new/offlineimap-7.0.8/offlineimap/imapserver.py     2016-10-08 
10:10:56.000000000 +0200
@@ -172,26 +172,6 @@
         self.passworderror = None
         return self.password
 
-
-    def releaseconnection(self, connection, drop_conn=False):
-        """Releases a connection, returning it to the pool.
-
-        :param drop_conn: If True, the connection will be released and
-           not be reused. This can be used to indicate broken connections."""
-
-        if connection is None:
-            return # Noop on bad connection.
-
-        self.connectionlock.acquire()
-        self.assignedconnections.remove(connection)
-        # Don't reuse broken connections
-        if connection.Terminate or drop_conn:
-            connection.logout()
-        else:
-            self.availableconnections.append(connection)
-        self.connectionlock.release()
-        self.semaphore.release()
-
     def __md5handler(self, response):
         challenge = response.strip()
         self.ui.debug('imap', '__md5handler: got challenge %s'% challenge)
@@ -207,7 +187,6 @@
         self.ui.debug('imap', 'Attempting IMAP LOGIN authentication')
         imapobj.login(self.username, self.__getpassword())
 
-
     def __plainhandler(self, response):
         """Implements SASL PLAIN authentication, RFC 4616,
           http://tools.ietf.org/html/rfc4616""";
@@ -225,7 +204,6 @@
         self.ui.debug('imap', '__plainhandler: returning %s'% logsafe_retval)
         return retval
 
-
     def __xoauth2handler(self, response):
         if self.oauth2_refresh_token is None \
                 and self.oauth2_access_token is None:
@@ -304,7 +282,6 @@
             response = ''
         return base64.b64decode(response)
 
-
     def __start_tls(self, imapobj):
         if 'STARTTLS' in imapobj.capabilities and not self.usessl:
             self.ui.debug('imap', 'Using STARTTLS connection')
@@ -315,7 +292,6 @@
                     "TLS connection: %s"% str(e),
                     OfflineImapError.ERROR.REPO, None, exc_info()[2])
 
-
     ## All __authn_* procedures are helpers that do authentication.
     ## They are class methods that take one parameter, IMAP object.
     ##
@@ -375,7 +351,6 @@
             self.__loginauth(imapobj)
             return True
 
-
     def __authn_helper(self, imapobj):
         """Authentication machinery for self.acquireconnection().
 
@@ -447,8 +422,45 @@
               ", ".join(self.authmechs), methods),
               OfflineImapError.ERROR.REPO)
 
+    def __verifycert(self, cert, hostname):
+        """Verify that cert (in socket.getpeercert() format) matches hostname.
+
+        CRLs are not handled.
+        Returns error message if any problems are found and None on success."""
+
+        errstr = "CA Cert verifying failed: "
+        if not cert:
+            return ('%s no certificate received'% errstr)
+        dnsname = hostname.lower()
+        certnames = []
+
+        # cert expired?
+        notafter = cert.get('notAfter')
+        if notafter:
+            if time.time() >= cert_time_to_seconds(notafter):
+                return '%s certificate expired %s'% (errstr, notafter)
+
+        # First read commonName
+        for s in cert.get('subject', []):
+            key, value = s[0]
+            if key == 'commonName':
+                certnames.append(value.lower())
+        if len(certnames) == 0:
+            return ('%s no commonName found in certificate'% errstr)
+
+        # Then read subjectAltName
+        for key, value in cert.get('subjectAltName', []):
+            if key == 'DNS':
+                certnames.append(value.lower())
+
+        # And finally try to match hostname with one of these names
+        for certname in certnames:
+            if (certname == dnsname or
+                '.' in dnsname and certname == '*.' + dnsname.split('.', 
1)[1]):
+                return None
+
+        return ('%s no matching domain name found in certificate'% errstr)
 
-    # XXX: move above, closer to releaseconnection()
     def acquireconnection(self):
         """Fetches a connection from the pool, making sure to create a new one
         if needed, to obey the maximum connection limits, etc.
@@ -694,44 +706,25 @@
         self.ui.debug('imap', 'keepalive: event is set; exiting')
         return
 
-    def __verifycert(self, cert, hostname):
-        """Verify that cert (in socket.getpeercert() format) matches hostname.
-
-        CRLs are not handled.
-        Returns error message if any problems are found and None on success."""
-
-        errstr = "CA Cert verifying failed: "
-        if not cert:
-            return ('%s no certificate received'% errstr)
-        dnsname = hostname.lower()
-        certnames = []
-
-        # cert expired?
-        notafter = cert.get('notAfter')
-        if notafter:
-            if time.time() >= cert_time_to_seconds(notafter):
-                return '%s certificate expired %s'% (errstr, notafter)
 
-        # First read commonName
-        for s in cert.get('subject', []):
-            key, value = s[0]
-            if key == 'commonName':
-                certnames.append(value.lower())
-        if len(certnames) == 0:
-            return ('%s no commonName found in certificate'% errstr)
+    def releaseconnection(self, connection, drop_conn=False):
+        """Releases a connection, returning it to the pool.
 
-        # Then read subjectAltName
-        for key, value in cert.get('subjectAltName', []):
-            if key == 'DNS':
-                certnames.append(value.lower())
+        :param drop_conn: If True, the connection will be released and
+           not be reused. This can be used to indicate broken connections."""
 
-        # And finally try to match hostname with one of these names
-        for certname in certnames:
-            if (certname == dnsname or
-                '.' in dnsname and certname == '*.' + dnsname.split('.', 
1)[1]):
-                return None
+        if connection is None:
+            return # Noop on bad connection.
 
-        return ('%s no matching domain name found in certificate'% errstr)
+        self.connectionlock.acquire()
+        self.assignedconnections.remove(connection)
+        # Don't reuse broken connections
+        if connection.Terminate or drop_conn:
+            connection.logout()
+        else:
+            self.availableconnections.append(connection)
+        self.connectionlock.release()
+        self.semaphore.release()
 
 
 class IdleThread(object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/offlineimap-7.0.7/offlineimap/init.py 
new/offlineimap-7.0.8/offlineimap/init.py
--- old/offlineimap-7.0.7/offlineimap/init.py   2016-09-21 04:03:25.000000000 
+0200
+++ new/offlineimap-7.0.8/offlineimap/init.py   2016-10-08 10:10:56.000000000 
+0200
@@ -27,8 +27,11 @@
 
 import offlineimap
 import offlineimap.virtual_imaplib2 as imaplib
-from offlineimap import globals, threadutil, accounts, folder, mbnames
+
+# Ensure that `ui` gets loaded before `threadutil` in order to
+# break the circular dependency between `threadutil` and `Curses`.
 from offlineimap.ui import UI_LIST, setglobalui, getglobalui
+from offlineimap import globals, threadutil, accounts, folder, mbnames
 from offlineimap.CustomConfig import CustomConfigParser
 from offlineimap.utils import stacktrace
 from offlineimap.repository import Repository


Reply via email to