Hello community,

here is the log from the commit of package duplicity for openSUSE:Factory 
checked in at 2018-01-20 11:24:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duplicity (Old)
 and      /work/SRC/openSUSE:Factory/.duplicity.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "duplicity"

Sat Jan 20 11:24:20 2018 rev:39 rq:564427 version:0.7.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/duplicity/duplicity.changes      2017-12-19 
10:46:47.387232195 +0100
+++ /work/SRC/openSUSE:Factory/.duplicity.new/duplicity.changes 2018-01-20 
11:24:24.214849973 +0100
@@ -1,0 +2,11 @@
+Sun Jan 14 15:59:32 UTC 2018 - w...@rosenauer.org
+
+- update to 0.7.16
+  * Fixed AttributeError: 'GPGError' object has no attribute 'decode'
+  * More fixes for Unicode handling
+  * Fixed "BackendException with oauth2client 4.0.0"
+  * Fixed "Dropbox support needs to be updated for Dropbox SDK v7.1"
+  * Fixed small file upload changes made in Dropbox SDK v7.1
+  * Fix pylint error in webdavbackend.py
+
+-------------------------------------------------------------------

Old:
----
  duplicity-0.7.15.tar.gz

New:
----
  duplicity-0.7.16.tar.gz

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

Other differences:
------------------
++++++ duplicity.spec ++++++
--- /var/tmp/diff_new_pack.VfFMoR/_old  2018-01-20 11:24:24.966814818 +0100
+++ /var/tmp/diff_new_pack.VfFMoR/_new  2018-01-20 11:24:24.966814818 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package duplicity
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{!?python_sitelib:  %global python_sitelib  %(python -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib())")}
 %{!?python_sitearch: %global python_sitearch %(python -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 Name:           duplicity
-Version:        0.7.15
+Version:        0.7.16
 Release:        0
 Summary:        Encrypted bandwidth-efficient backup using the rsync algorithm
 License:        GPL-3.0+

++++++ duplicity-0.7.15.tar.gz -> duplicity-0.7.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/CHANGELOG 
new/duplicity-0.7.16/CHANGELOG
--- old/duplicity-0.7.15/CHANGELOG      2017-11-13 16:47:44.000000000 +0100
+++ new/duplicity-0.7.16/CHANGELOG      2018-01-12 17:55:24.000000000 +0100
@@ -1,3 +1,19 @@
+New in v0.7.16 (2018/01/12)
+---------------------------
+* Fixed bug #1733057 AttributeError: 'GPGError' object has no attribute 
'decode'
+  - Replaced call to util.ufn() with call to util.uexc().  Stupid typo!
+* More fixes for Unicode handling
+  - Default to 'utf-8' if sys.getfilesystemencoding() returns 'ascii' or None
+  - Fixed bug #1386373 with suggestion from Eugene Morozov
+* Patched in lp:~crosser/duplicity/fix-oauth-flow
+  - Fixed bug #1638236 "BackendException with oauth2client 4.0.0"
+* Patched in lp:~crosser/duplicity/dpbx-fix-file-listing
+  - Fixed bug #1639664 "Dropbox support needs to be updated for Dropbox SDK 
v7.1"
+* Patched in lp:~crosser/duplicity/fix-small-file-upload
+  - Fixed small file upload changes made in Dropbox SDK v7.1
+* Fix pylint error in webdavbackend.py
+
+
 New in v0.7.15 (2017/11/13)
 ---------------------------
 * Fixed bug introduced in new megabackend.py where process_commandline()
@@ -25,7 +41,7 @@
 * Fixed bug #1654756 with new b2backend.py module from Vincent Rouille
   - Faster (big files are uploaded in chunks)
   - Added upload progress reporting support
-* Fixed bug #1448094 with patch from Tomáš Zvala
+* Fixed bug #1448094 with patch from Wolfgang Rohdewald
   - Don't log incremental deletes for chains that have no incrementals
 * Fixed bug #1724144 "--gpg-options unused with some commands"
   - Add --gpg-options to get version run command
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/Changelog.GNU 
new/duplicity-0.7.16/Changelog.GNU
--- old/duplicity-0.7.15/Changelog.GNU  2017-11-13 16:48:28.000000000 +0100
+++ new/duplicity-0.7.16/Changelog.GNU  2018-01-12 17:54:58.000000000 +0100
@@ -1,3 +1,31 @@
+2018-01-12  Kenneth Loafman  <kenn...@loafman.com>
+
+    * Fix pylint error in webdavbackend.py
+    * Prep for 0.7.16
+
+2017-11-28  Kenneth Loafman  <kenn...@loafman.com>
+
+    * Patched in lp:~crosser/duplicity/fix-small-file-upload
+      - Fixed small file upload changes made in Dropbox SDK v7.1
+
+2017-11-25  Kenneth Loafman  <kenn...@loafman.com>
+
+    * Patched in lp:~crosser/duplicity/fix-oauth-flow
+      - Fixed bug #1638236 "BackendException with oauth2client 4.0.0"
+    * Patched in lp:~crosser/duplicity/dpbx-fix-file-listing
+      - Fixed bug #1639664 "Dropbox support needs to be updated for Dropbox 
SDK v7.1"
+
+2017-11-23  Kenneth Loafman  <kenn...@loafman.com>
+
+    * More fixes for Unicode handling
+      - Default to 'utf-8' if sys.getfilesystemencoding() returns 'ascii' or 
None
+      - Fixed bug #1386373 with suggestion from Eugene Morozov
+
+2017-11-18  Kenneth Loafman  <kenn...@loafman.com>
+
+    * Fixed bug #1733057 AttributeError: 'GPGError' object has no attribute 
'decode'
+      - Replaced call to util.ufn() with call to util.uexc().  Stupid typo!
+
 2017-11-09  Kenneth Loafman  <kenn...@loafman.com>
 
     * Prep for 0.7.15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/bin/duplicity 
new/duplicity-0.7.16/bin/duplicity
--- old/duplicity-0.7.15/bin/duplicity  2017-11-13 16:56:58.000000000 +0100
+++ new/duplicity-0.7.16/bin/duplicity  2018-01-12 18:06:21.000000000 +0100
@@ -2,7 +2,7 @@
 # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
 #
 # duplicity -- Encrypted bandwidth efficient backup
-# Version 0.7.15 released November 13, 2017
+# Version 0.7.16 released January 12, 2018
 #
 # Copyright 2002 Ben Escoto <b...@emerose.org>
 # Copyright 2007 Kenneth Loafman <kenn...@loafman.com>
@@ -1284,7 +1284,7 @@
     log Python, duplicity, and system versions
     """
     log.Log(u'=' * 80, verbosity)
-    log.Log(u"duplicity 0.7.15 (November 13, 2017)", verbosity)
+    log.Log(u"duplicity 0.7.16 (January 12, 2018)", verbosity)
     log.Log(u"Args: %s" % util.ufn(' '.join(sys.argv)), verbosity)
     log.Log(u' '.join(platform.uname()), verbosity)
     log.Log(u"%s %s" % (sys.executable or sys.platform, sys.version), 
verbosity)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/bin/duplicity.1 
new/duplicity-0.7.16/bin/duplicity.1
--- old/duplicity-0.7.15/bin/duplicity.1        2017-11-13 16:56:58.000000000 
+0100
+++ new/duplicity-0.7.16/bin/duplicity.1        2018-01-12 18:06:21.000000000 
+0100
@@ -1,4 +1,4 @@
-.TH DUPLICITY 1 "November 13, 2017" "Version 0.7.15" "User Manuals" \"  -*- 
nroff -*-
+.TH DUPLICITY 1 "January 12, 2018" "Version 0.7.16" "User Manuals" \"  -*- 
nroff -*-
 .\" disable justification (adjust text to left margin only)
 .\" command line examples stay readable through that
 .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/bin/rdiffdir 
new/duplicity-0.7.16/bin/rdiffdir
--- old/duplicity-0.7.15/bin/rdiffdir   2017-11-13 16:56:58.000000000 +0100
+++ new/duplicity-0.7.16/bin/rdiffdir   2018-01-12 18:06:21.000000000 +0100
@@ -1,6 +1,6 @@
 #!/usr/bin/env python2
 # rdiffdir -- Extend rdiff functionality to directories
-# Version 0.7.15 released November 13, 2017
+# Version 0.7.16 released January 12, 2018
 #
 # Copyright 2002 Ben Escoto <b...@emerose.org>
 # Copyright 2007 Kenneth Loafman <kenn...@loafman.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/bin/rdiffdir.1 
new/duplicity-0.7.16/bin/rdiffdir.1
--- old/duplicity-0.7.15/bin/rdiffdir.1 2017-11-13 16:56:58.000000000 +0100
+++ new/duplicity-0.7.16/bin/rdiffdir.1 2018-01-12 18:06:21.000000000 +0100
@@ -1,4 +1,4 @@
-.TH RDIFFDIR 1 "November 13, 2017" "Version 0.7.15" "User Manuals" \"  -*- 
nroff -*-
+.TH RDIFFDIR 1 "January 12, 2018" "Version 0.7.16" "User Manuals" \"  -*- 
nroff -*-
 .\" disable justification (adjust text to left margin only)
 .\" command line examples stay readable through that
 .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/duplicity/backend.py 
new/duplicity-0.7.16/duplicity/backend.py
--- old/duplicity-0.7.15/duplicity/backend.py   2017-09-07 18:46:12.000000000 
+0200
+++ new/duplicity-0.7.16/duplicity/backend.py   2017-11-23 14:07:34.000000000 
+0100
@@ -568,7 +568,7 @@
                 # There shouldn't be any encoding errors for files we care
                 # about, since duplicity filenames are ascii.  But user files
                 # may be in the same directory.  So just replace characters.
-                return filename.encode(sys.getfilesystemencoding(), 'replace')
+                return filename.encode(globals.fsencoding, 'replace')
             else:
                 return filename
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/duplicity/backends/dpbxbackend.py 
new/duplicity-0.7.16/duplicity/backends/dpbxbackend.py
--- old/duplicity-0.7.15/duplicity/backends/dpbxbackend.py      2017-08-06 
18:25:09.000000000 +0200
+++ new/duplicity-0.7.16/duplicity/backends/dpbxbackend.py      2017-11-28 
15:10:56.000000000 +0100
@@ -1,5 +1,6 @@
 # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
 # pylint: skip-file
+# pylint: skip-file
 #
 # Copyright 2013 jno <j...@pisem.net>
 # Copyright 2016 Dmitry Nezhevenko <d...@dion.org.ua>
@@ -40,7 +41,7 @@
 from dropbox import Dropbox
 from dropbox.exceptions import AuthError, BadInputError, ApiError
 from dropbox.files import UploadSessionCursor, CommitInfo, WriteMode, \
-    GetMetadataError, DeleteError, UploadSessionLookupError
+    GetMetadataError, DeleteError, UploadSessionLookupError, ListFolderError
 from dropbox.oauth import DropboxOAuth2FlowNoRedirect
 from requests.exceptions import ConnectionError
 import time
@@ -141,11 +142,11 @@
         auth_code = raw_input("Enter the authorization code here: ").strip()
         try:
             log.Debug('dpbx,auth_flow.finish(%s)' % auth_code)
-            access_token, _ = auth_flow.finish(auth_code)
+            authresult = auth_flow.finish(auth_code)
         except Exception as e:
             raise BackendException('dpbx: Unable to obtain access token: %s' % 
e)
         log.Info("dpbx: Authentication successfull")
-        self.save_access_token(access_token)
+        self.save_access_token(authresult.access_token)
 
     def login(self):
         if self.load_access_token() is None:
@@ -214,7 +215,7 @@
         try:
             log.Debug('dpbx,files_upload(%s, [%d bytes])' % (remote_path, 
file_size))
 
-            res_metadata = self.api_client.files_upload(f, remote_path,
+            res_metadata = self.api_client.files_upload(f.read(), remote_path,
                                                         
mode=WriteMode.overwrite,
                                                         autorename=False,
                                                         client_modified=None,
@@ -382,15 +383,22 @@
         remote_dir = '/' + 
urllib.unquote(self.parsed_url.path.lstrip('/')).rstrip()
 
         log.Debug('dpbx.files_list_folder(%s)' % remote_dir)
-        resp = self.api_client.files_list_folder(remote_dir)
-        log.Debug('dpbx.list(%s): %s' % (remote_dir, resp))
-
         res = []
-        while True:
-            res.extend([entry.name for entry in resp.entries])
-            if not resp.has_more:
-                break
-            resp = self.api_client.files_list_folder_continue(resp.cursor)
+        try:
+            resp = self.api_client.files_list_folder(remote_dir)
+            log.Debug('dpbx.list(%s): %s' % (remote_dir, resp))
+
+            while True:
+                res.extend([entry.name for entry in resp.entries])
+                if not resp.has_more:
+                    break
+                resp = self.api_client.files_list_folder_continue(resp.cursor)
+        except ApiError as e:
+            if (isinstance(e.error, ListFolderError) and e.error.is_path() and
+                    e.error.get_path().is_not_found()):
+                log.Debug('dpbx.list(%s): ignore missing folder (%s)' % 
(remote_dir, e))
+            else:
+                raise
 
         # Warn users of old version dpbx about automatically renamed files
         self.check_renamed_files(res)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/duplicity/backends/webdavbackend.py 
new/duplicity-0.7.16/duplicity/backends/webdavbackend.py
--- old/duplicity-0.7.15/duplicity/backends/webdavbackend.py    2017-08-24 
22:20:05.000000000 +0200
+++ new/duplicity-0.7.16/duplicity/backends/webdavbackend.py    2018-01-12 
17:54:05.000000000 +0100
@@ -272,7 +272,7 @@
         return 
urllib2.parse_keqv_list(urllib2.parse_http_list(challenge_string))
 
     def get_kerberos_authorization(self):
-        import kerberos
+        import kerberos  # pylint: disable=import-error
         _, ctx = kerberos.authGSSClientInit("HTTP@%s" % self.conn.host)
         kerberos.authGSSClientStep(ctx, "")
         tgt = kerberos.authGSSClientResponse(ctx)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/duplicity/collections.py 
new/duplicity-0.7.16/duplicity/collections.py
--- old/duplicity-0.7.15/duplicity/collections.py       2017-11-10 
21:21:30.000000000 +0100
+++ new/duplicity-0.7.16/duplicity/collections.py       2017-11-18 
17:05:32.000000000 +0100
@@ -242,7 +242,7 @@
             manifest_buffer = self.backend.get_data(self.remote_manifest_name)
         except GPGError as message:
             log.Error(_("Error processing remote manifest (%s): %s") %
-                      (util.ufn(self.remote_manifest_name), util.ufn(message)))
+                      (util.ufn(self.remote_manifest_name), 
util.uexc(message)))
             return None
         log.Info(_("Processing remote manifest %s (%s)") % (
             util.ufn(self.remote_manifest_name), len(manifest_buffer)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/duplicity/globals.py 
new/duplicity-0.7.16/duplicity/globals.py
--- old/duplicity-0.7.15/duplicity/globals.py   2017-11-13 16:56:58.000000000 
+0100
+++ new/duplicity-0.7.16/duplicity/globals.py   2018-01-12 18:06:21.000000000 
+0100
@@ -22,11 +22,12 @@
 """Store global configuration information"""
 
 import os
+import sys
 import socket
 
 
 # The current version of duplicity
-version = "0.7.15"
+version = "0.7.16"
 
 # Prefix for all files (appended before type-specific prefixes)
 file_prefix = ""
@@ -301,3 +302,10 @@
 
 # delay (in seconds) before next operation after failure
 backend_retry_delay = 30
+
+# default filesystem encoding
+# In Python 2 it seems that sys.getfilesystemencoding() will normally return
+# 'utf-8' or some other sane encoding, but will sometimes fail and return
+# either 'ascii' or None.  Both are bogus, so default to 'utf-8' if it does.
+fsencoding = sys.getfilesystemencoding()
+fsencoding = fsencoding if fsencoding not in ['ascii', None] else 'utf-8'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/duplicity/util.py 
new/duplicity-0.7.16/duplicity/util.py
--- old/duplicity-0.7.15/duplicity/util.py      2017-09-07 14:19:18.000000000 
+0200
+++ new/duplicity-0.7.16/duplicity/util.py      2017-11-23 14:07:34.000000000 
+0100
@@ -60,7 +60,7 @@
 def ufn(filename):
     "Convert a (bytes) filename to unicode for printing"
     assert not isinstance(filename, unicode)
-    return filename.decode(sys.getfilesystemencoding(), 'replace')
+    return filename.decode(globals.fsencoding, 'replace')
 
 
 def uindex(index):
@@ -76,8 +76,7 @@
     # non-ascii will cause a UnicodeDecodeError when implicitly decoding to
     # unicode.  So we decode manually, using the filesystem encoding.
     # 99.99% of the time, this will be a fine encoding to use.
-    e = unicode(e).encode('utf-8')
-    return ufn(str(e))
+    return ufn(unicode(e).encode('utf-8'))
 
 
 def maybe_ignore_errors(fn):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/po/duplicity.pot 
new/duplicity-0.7.16/po/duplicity.pot
--- old/duplicity-0.7.15/po/duplicity.pot       2017-11-11 14:08:58.000000000 
+0100
+++ new/duplicity-0.7.16/po/duplicity.pot       2018-01-12 17:40:21.000000000 
+0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: Kenneth Loafman <kenn...@loafman.com>\n"
-"POT-Creation-Date: 2017-11-11 07:08-0600\n"
+"POT-Creation-Date: 2018-01-12 10:40-0600\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <l...@li.org>\n"
@@ -1687,12 +1687,12 @@
 msgid "Cleanup of temporary directory %s failed - this is probably a bug."
 msgstr ""
 
-#: ../duplicity/util.py:96
+#: ../duplicity/util.py:95
 #, python-format
 msgid "IGNORED_ERROR: Warning: ignoring error as requested: %s: %s"
 msgstr ""
 
-#: ../duplicity/util.py:163
+#: ../duplicity/util.py:162
 #, python-format
 msgid "Releasing lockfile %s"
 msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/requirements.txt 
new/duplicity-0.7.16/requirements.txt
--- old/duplicity-0.7.15/requirements.txt       1970-01-01 01:00:00.000000000 
+0100
+++ new/duplicity-0.7.16/requirements.txt       2017-12-06 16:58:25.000000000 
+0100
@@ -0,0 +1,13 @@
+boto
+coverage
+dropbox==6.9.0
+fasteners
+paramiko
+pep8
+pexpect
+pydrive
+pylint
+pyrax
+python-cloudfiles
+tox
+urllib3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.15/setup.py 
new/duplicity-0.7.16/setup.py
--- old/duplicity-0.7.15/setup.py       2017-11-13 16:56:58.000000000 +0100
+++ new/duplicity-0.7.16/setup.py       2018-01-12 18:06:21.000000000 +0100
@@ -28,7 +28,7 @@
 from setuptools.command.sdist import sdist
 from distutils.command.build_scripts import build_scripts
 
-version_string = "0.7.15"
+version_string = "0.7.16"
 
 if sys.version_info[:2] < (2, 6) or sys.version_info[:2] > (2, 7):
     print("Sorry, duplicity requires version 2.6 or 2.7 of python.")
Binary files old/duplicity-0.7.15/testing/testfiles.tar.gz and 
new/duplicity-0.7.16/testing/testfiles.tar.gz differ


Reply via email to