Hello community,

here is the log from the commit of package duplicity for openSUSE:Factory 
checked in at 2019-05-02 19:19:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duplicity (Old)
 and      /work/SRC/openSUSE:Factory/.duplicity.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "duplicity"

Thu May  2 19:19:28 2019 rev:44 rq:699772 version:0.7.19

Changes:
--------
--- /work/SRC/openSUSE:Factory/duplicity/duplicity.changes      2018-10-22 
11:24:17.535098906 +0200
+++ /work/SRC/openSUSE:Factory/.duplicity.new.5148/duplicity.changes    
2019-05-02 19:19:33.801659399 +0200
@@ -1,0 +2,25 @@
+Tue Apr 30 10:54:15 UTC 2019 - [email protected]
+
+- Update to 0.7.19:
+  * Fixed bug #1798206 and bug #1798504
+    - Made paramiko a global with import during __init__ so it would
+     j not be loaded unless needed.
+  * Merged in lp:~mterry/duplicity/pydrive-root-0.7
+    - Just a tiny fix to clean up the temporary file we create to find the 
root ID.
+      It's a little surprising for the user if they wind up with this file 
called
+      "i_am_in_root" that they don't know where it came from. Almost sounds 
like
+      they were hacked.
+  * Merged in lp:~yajo/duplicity/duplicity
+    - Support partial metadata sync.
+    - Fixes bug #1823858 by letting the user to choose partial syncing.
+      Only the metadata for the target chain will be downloaded. If older
+      (or newer) chains are encrypted with a different passphrase, the user 
will
+      be able to restore to a given time by supplying only the
+      passphrase for the chain selected by the `--restore-time` option
+      when using this new option.
+    - A side effect is that using this flag reduces dramatically the
+      sync time when moving files from one to another location, in
+      cases where big amounts of chains are found.
+- Update duplicity-remove_shebang.patch
+
+-------------------------------------------------------------------

Old:
----
  duplicity-0.7.18.2.tar.gz

New:
----
  duplicity-0.7.19.tar.gz

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

Other differences:
------------------
++++++ duplicity.spec ++++++
--- /var/tmp/diff_new_pack.Za0L5e/_old  2019-05-02 19:19:34.573660757 +0200
+++ /var/tmp/diff_new_pack.Za0L5e/_new  2019-05-02 19:19:34.573660757 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package duplicity
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           duplicity
-Version:        0.7.18.2
+Version:        0.7.19
 Release:        0
 Summary:        Encrypted bandwidth-efficient backup using the rsync algorithm
 License:        GPL-3.0-or-later

++++++ duplicity-0.7.18.2.tar.gz -> duplicity-0.7.19.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/CHANGELOG 
new/duplicity-0.7.19/CHANGELOG
--- old/duplicity-0.7.18.2/CHANGELOG    2018-10-17 17:24:19.000000000 +0200
+++ new/duplicity-0.7.19/CHANGELOG      2019-04-29 17:46:58.000000000 +0200
@@ -1,5 +1,26 @@
-New in v0.7.19 (2018/10/17)
----------------------------
+New in v0.7.19 (2019/04/29)
+-----------------------------
+* Fixed bug #1798206 and bug #1798504
+  - Made paramiko a global with import during __init__ so it would
+    not be loaded unless needed.
+* Merged in lp:~mterry/duplicity/pydrive-root-0.7
+  - Just a tiny fix to clean up the temporary file we create to find the root 
ID.
+    It's a little surprising for the user if they wind up with this file called
+    "i_am_in_root" that they don't know where it came from. Almost sounds like
+    they were hacked.
+* Merged in lp:~yajo/duplicity/duplicity
+  - Support partial metadata sync.
+  - Fixes bug #1823858 by letting the user to choose partial syncing. Only the 
metadata for the target chain
+    will be downloaded. If older (or newer) chains are encrypted with a 
different passphrase, the user will
+    be able to restore to a given time by supplying only the passphrase for 
the chain selected by
+    the `--restore-time` option when using this new option.
+  - A side effect is that using this flag reduces dramatically the sync time 
when moving files from one to
+    another location, in cases where big amounts of chains are found.
+* Prep for release.
+
+
+New in v0.7.18.2 (2018/10/17)
+-----------------------------
 * Fixed bug #1788558 again
   - If we get None for size skip check.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/Changelog.GNU 
new/duplicity-0.7.19/Changelog.GNU
--- old/duplicity-0.7.18.2/Changelog.GNU        2018-10-17 17:27:04.000000000 
+0200
+++ new/duplicity-0.7.19/Changelog.GNU  2019-04-27 19:12:26.000000000 +0200
@@ -1,3 +1,28 @@
+2019-04-27  Kenneth Loafman  <[email protected]>
+
+    * Merged in lp:~yajo/duplicity/duplicity
+      - Support partial metadata sync.
+      - Fixes bug #1823858 by letting the user to choose partial syncing. Only 
the metadata for the target chain
+        will be downloaded. If older (or newer) chains are encrypted with a 
different passphrase, the user will
+        be able to restore to a given time by supplying only the passphrase 
for the chain selected by
+        the `--restore-time` option when using this new option.
+      - A side effect is that using this flag reduces dramatically the sync 
time when moving files from one to
+        another location, in cases where big amounts of chains are found.
+
+2019-02-25  Kenneth Loafman  <[email protected]>
+
+    * Merged in lp:~mterry/duplicity/pydrive-root-0.7
+      - Just a tiny fix to clean up the temporary file we create to find the 
root ID.
+        It's a little surprising for the user if they wind up with this file 
called
+        "i_am_in_root" that they don't know where it came from. Almost sounds 
like
+        they were hacked.
+
+2018-10-17  Kenneth Loafman  <[email protected]>
+
+    * Fixed bug #1798206 and bug #1798504
+      - Made paramiko a global with import during __init__ so it would
+        not be loaded unless needed.
+
 2018-10-17  Kenneth Loafman  <[email protected]>
 
     * Prep for 0.7.18.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/bin/duplicity 
new/duplicity-0.7.19/bin/duplicity
--- old/duplicity-0.7.18.2/bin/duplicity        2018-10-17 17:28:13.000000000 
+0200
+++ new/duplicity-0.7.19/bin/duplicity  2019-04-29 17:49:23.000000000 +0200
@@ -2,7 +2,7 @@
 # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
 #
 # duplicity -- Encrypted bandwidth efficient backup
-# Version 0.7.18.2 released October 17, 2018
+# Version 0.7.19 released April 29, 2019
 #
 # Copyright 2002 Ben Escoto <[email protected]>
 # Copyright 2007 Kenneth Loafman <[email protected]>
@@ -1020,7 +1020,7 @@
                    _("Rerun command with --force option to actually delete."))
 
 
-def sync_archive():
+def sync_archive(col_stats):
     """
     Synchronize local archive manifest file and sig chains to remote archives.
     Copy missing files from remote to local as needed to make sure the local
@@ -1031,6 +1031,27 @@
     """
     suffixes = [".g", ".gpg", ".z", ".gz", ".part"]
 
+    def is_needed(filename):
+        """Indicates if the metadata file should be synced.
+
+        In full sync mode, or if there's a collection misbehavior, all files
+        are needed.
+
+        Otherwise, only the metadata for the target chain needs sync.
+        """
+        if globals.metadata_sync_mode == "full":
+            return True
+        assert globals.metadata_sync_mode == "partial"
+        parsed = file_naming.parse(filename)
+        try:
+            target_chain = col_stats.get_backup_chain_at_time(
+                globals.restore_time or dup_time.curtime)
+        except collections.CollectionsError:
+            # With zero or multiple chains at this time, do a full sync
+            return True
+        return parsed.end_time >= target_chain.start_time and \
+            parsed.start_time <= target_chain.end_time
+
     def get_metafiles(filelist):
         """
         Return metafiles of interest from the file list.
@@ -1180,7 +1201,7 @@
         # already have a local partial.  The local partial will already be
         # complete in this case (seems we got interrupted before we could move
         # it to its final location).
-        if key not in local_keys and key not in local_partials:
+        if key not in local_keys and key not in local_partials and 
is_needed(key):
             local_missing.append(remote_metafiles[key])
 
     for key in local_keys:
@@ -1288,7 +1309,7 @@
     log Python, duplicity, and system versions
     """
     log.Log(u'=' * 80, verbosity)
-    log.Log(u"duplicity 0.7.18.2 (October 17, 2018)", verbosity)
+    log.Log(u"duplicity 0.7.19 (April 29, 2019)", 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)
@@ -1414,15 +1435,15 @@
     # check for disk space and available file handles
     check_resources(action)
 
-    # check archive synch with remote, fix if needed
-    if action not in ["collection-status"]:
-        sync_archive()
-
     # get current collection status
     col_stats = collections.CollectionsStatus(globals.backend,
                                               globals.archive_dir,
                                               action).set_values()
 
+    # check archive synch with remote, fix if needed
+    if action not in ["collection-status"]:
+        sync_archive(col_stats)
+
     while True:
         # if we have to clean up the last partial, then col_stats are 
invalidated
         # and we have to start the process all over again until clean.
@@ -1488,7 +1509,7 @@
     elif action == "remove-all-but-n-full" or action == 
"remove-all-inc-of-but-n-full":
         remove_all_but_n_full(col_stats)
     elif action == "sync":
-        sync_archive()
+        sync_archive(col_stats)
     else:
         assert action == "inc" or action == "full", action
         # the passphrase for full and inc is used by --sign-key
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/bin/duplicity.1 
new/duplicity-0.7.19/bin/duplicity.1
--- old/duplicity-0.7.18.2/bin/duplicity.1      2018-10-17 17:28:13.000000000 
+0200
+++ new/duplicity-0.7.19/bin/duplicity.1        2019-04-29 17:49:23.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH DUPLICITY 1 "October 17, 2018" "Version 0.7.18.2" "User Manuals" \"  -*- 
nroff -*-
+.TH DUPLICITY 1 "April 29, 2019" "Version 0.7.19" "User Manuals" \"  -*- nroff 
-*-
 .\" disable justification (adjust text to left margin only)
 .\" command line examples stay readable through that
 .ad l
@@ -882,6 +882,14 @@
 .BR "A NOTE ON SSL CERTIFICATE VERIFICATION" .
 
 .TP
+.BI "--metadata-sync-mode " mode
+This option defaults to 'full', but you can set it to 'partial'
+to avoid syncing metadata for backup chains that you are not going to use.
+This saves time when restoring for the first time, and lets you restore an
+old backup that was encrypted with a different passphrase by supplying only
+the target passphrase.
+
+.TP
 .BI "--tempdir " directory
 Use this existing directory for duplicity temporary files instead of
 the system default, which is usually the /tmp directory. This option
@@ -1044,12 +1052,6 @@
 .B "A NOTE ON CLOUD FILES ACCESS"
 .RE
 .PP
-.B "Copy cloud storage"
-.PP
-.RS
-copy://user[:password]@copy.com/some_dir
-.RE
-.PP
 .B Dropbox
 .PP
 .RS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/bin/rdiffdir 
new/duplicity-0.7.19/bin/rdiffdir
--- old/duplicity-0.7.18.2/bin/rdiffdir 2018-10-17 17:28:13.000000000 +0200
+++ new/duplicity-0.7.19/bin/rdiffdir   2019-04-29 17:49:23.000000000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/env python2
 # rdiffdir -- Extend rdiff functionality to directories
-# Version 0.7.18.2 released October 17, 2018
+# Version 0.7.19 released April 29, 2019
 #
 # Copyright 2002 Ben Escoto <[email protected]>
 # Copyright 2007 Kenneth Loafman <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/bin/rdiffdir.1 
new/duplicity-0.7.19/bin/rdiffdir.1
--- old/duplicity-0.7.18.2/bin/rdiffdir.1       2018-10-17 17:28:13.000000000 
+0200
+++ new/duplicity-0.7.19/bin/rdiffdir.1 2019-04-29 17:49:23.000000000 +0200
@@ -1,4 +1,4 @@
-.TH RDIFFDIR 1 "October 17, 2018" "Version 0.7.18.2" "User Manuals" \"  -*- 
nroff -*-
+.TH RDIFFDIR 1 "April 29, 2019" "Version 0.7.19" "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.18.2/duplicity/backends/pydrivebackend.py 
new/duplicity-0.7.19/duplicity/backends/pydrivebackend.py
--- old/duplicity-0.7.18.2/duplicity/backends/pydrivebackend.py 2017-11-01 
13:27:41.000000000 +0100
+++ new/duplicity-0.7.19/duplicity/backends/pydrivebackend.py   2019-02-25 
17:17:27.000000000 +0100
@@ -92,6 +92,7 @@
             file_in_root = self.drive.CreateFile({'title': 'i_am_in_root'})
             file_in_root.Upload()
             parent_folder_id = file_in_root['parents'][0]['id']
+            file_in_root.Delete()
 
         # Fetch destination folder entry and create hierarchy if required.
         folder_names = string.split(parsed_url.path, '/')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/duplicity-0.7.18.2/duplicity/backends/ssh_paramiko_backend.py 
new/duplicity-0.7.19/duplicity/backends/ssh_paramiko_backend.py
--- old/duplicity-0.7.18.2/duplicity/backends/ssh_paramiko_backend.py   
2018-08-21 17:56:57.000000000 +0200
+++ new/duplicity-0.7.19/duplicity/backends/ssh_paramiko_backend.py     
2018-12-17 18:07:56.000000000 +0100
@@ -37,6 +37,9 @@
 from duplicity import log
 from duplicity.errors import BackendException
 
+global paramiko
+
+
 read_blocksize = 65635  # for doing scp retrievals, where we need to read 
ourselves
 
 
@@ -61,6 +64,8 @@
     This problem does not exist with sftp.
     """
     def __init__(self, parsed_url):
+        global paramiko
+
         duplicity.backend.Backend.__init__(self, parsed_url)
 
         self.retry_delay = 10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/duplicity/commandline.py 
new/duplicity-0.7.19/duplicity/commandline.py
--- old/duplicity-0.7.18.2/duplicity/commandline.py     2018-02-01 
17:55:59.000000000 +0100
+++ new/duplicity-0.7.19/duplicity/commandline.py       2019-04-27 
18:56:44.000000000 +0200
@@ -491,6 +491,11 @@
                       callback=lambda o, s, v, p: (setattr(p.values, o.dest, 
True),
                                                    old_fn_deprecation(s)))
 
+    # Sync only required metadata
+    parser.add_option("--metadata-sync-mode",
+                      default="full",
+                      choices=("full", "partial"))
+
     # Level of Redundancy in % for Par2 files
     parser.add_option("--par2-redundancy", type="int", metavar=_("number"))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/duplicity/globals.py 
new/duplicity-0.7.19/duplicity/globals.py
--- old/duplicity-0.7.18.2/duplicity/globals.py 2018-10-17 17:28:13.000000000 
+0200
+++ new/duplicity-0.7.19/duplicity/globals.py   2019-04-29 17:49:23.000000000 
+0200
@@ -27,7 +27,7 @@
 
 
 # The current version of duplicity
-version = "0.7.18.2"
+version = "0.7.19"
 
 # Prefix for all files (appended before type-specific prefixes)
 file_prefix = ""
@@ -225,6 +225,9 @@
 # Can be changed with a command line argument.
 imap_mailbox = "INBOX"
 
+# Sync all metadata by default
+metadata_sync_mode = "full"
+
 # Whether the old filename format is in effect.
 old_filenames = False
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/po/duplicity.pot 
new/duplicity-0.7.19/po/duplicity.pot
--- old/duplicity-0.7.18.2/po/duplicity.pot     2018-09-28 15:58:20.000000000 
+0200
+++ new/duplicity-0.7.19/po/duplicity.pot       2019-04-29 17:36:54.000000000 
+0200
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: Kenneth Loafman <[email protected]>\n"
-"POT-Creation-Date: 2018-09-28 08:58-0500\n"
+"POT-Creation-Date: 2018-12-16 11:10-0600\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duplicity-0.7.18.2/setup.py 
new/duplicity-0.7.19/setup.py
--- old/duplicity-0.7.18.2/setup.py     2018-10-17 17:28:13.000000000 +0200
+++ new/duplicity-0.7.19/setup.py       2019-04-29 17:49:23.000000000 +0200
@@ -28,7 +28,7 @@
 from setuptools.command.sdist import sdist
 from distutils.command.build_scripts import build_scripts
 
-version_string = "0.7.18.2"
+version_string = "0.7.19"
 
 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.")

++++++ duplicity-remove_shebang.patch ++++++
--- /var/tmp/diff_new_pack.Za0L5e/_old  2019-05-02 19:19:34.761661088 +0200
+++ /var/tmp/diff_new_pack.Za0L5e/_new  2019-05-02 19:19:34.761661088 +0200
@@ -1,24 +1,24 @@
-diff -urEbwB duplicity-0.7.18.2/bin/duplicity 
duplicity-0.7.18.2.new/bin/duplicity
---- duplicity-0.7.18.2/bin/duplicity   2018-10-17 17:28:13.000000000 +0200
-+++ duplicity-0.7.18.2.new/bin/duplicity       2018-10-19 12:40:15.105162150 
+0200
+diff -urEbwB duplicity-0.7.19/bin/duplicity duplicity-0.7.19.new/bin/duplicity
+--- duplicity-0.7.19/bin/duplicity     2019-04-29 17:49:23.000000000 +0200
++++ duplicity-0.7.19.new/bin/duplicity 2019-04-30 12:59:15.447186950 +0200
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python2
 +#!/usr/bin/python
  # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*-
  #
  # duplicity -- Encrypted bandwidth efficient backup
-diff -urEbwB duplicity-0.7.18.2/bin/rdiffdir 
duplicity-0.7.18.2.new/bin/rdiffdir
---- duplicity-0.7.18.2/bin/rdiffdir    2018-10-17 17:28:13.000000000 +0200
-+++ duplicity-0.7.18.2.new/bin/rdiffdir        2018-10-19 12:40:38.361254545 
+0200
+diff -urEbwB duplicity-0.7.19/bin/rdiffdir duplicity-0.7.19.new/bin/rdiffdir
+--- duplicity-0.7.19/bin/rdiffdir      2019-04-29 17:49:23.000000000 +0200
++++ duplicity-0.7.19.new/bin/rdiffdir  2019-04-30 12:59:36.219276912 +0200
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python2
 +#!/usr/bin/python
  # rdiffdir -- Extend rdiff functionality to directories
- # Version 0.7.18.2 released October 17, 2018
+ # Version 0.7.19 released April 29, 2019
  #
-diff -urEbwB duplicity-0.7.18.2/duplicity/compilec.py 
duplicity-0.7.18.2.new/duplicity/compilec.py
---- duplicity-0.7.18.2/duplicity/compilec.py   2017-08-06 18:25:09.000000000 
+0200
-+++ duplicity-0.7.18.2.new/duplicity/compilec.py       2018-10-19 
12:41:11.401385871 +0200
+diff -urEbwB duplicity-0.7.19/duplicity/compilec.py 
duplicity-0.7.19.new/duplicity/compilec.py
+--- duplicity-0.7.19/duplicity/compilec.py     2017-08-06 18:25:09.000000000 
+0200
++++ duplicity-0.7.19.new/duplicity/compilec.py 2019-04-30 13:00:05.903405462 
+0200
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python2
 +#!/usr/bin/python


Reply via email to