commit duplicity for openSUSE:Factory
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 - mvetter@suse.com + +- 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 <kenneth@loafman.com> + + * 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 <kenneth@loafman.com> + + * 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 <kenneth@loafman.com> + + * 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 <kenneth@loafman.com> * 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 <ben@emerose.org> # Copyright 2007 Kenneth Loafman <kenneth@loafman.com> @@ -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 <ben@emerose.org> # Copyright 2007 Kenneth Loafman <kenneth@loafman.com> 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 <kenneth@loafman.com>\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 <LL@li.org>\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
participants (1)
-
root