./sysutils/duplicity, Remote encrypting incremental backup utility

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.7.09nb1, Package name: duplicity-0.7.09nb1, Maintainer: pkgsrc-users

Duplicity backs directories by producing encrypted tar-format volumes and
uploading them to a remote or local file server. Because duplicity uses
librsync, the incremental archives are space efficient and only record the
parts of files that have changed since the last backup. Because duplicity
uses GnuPG to encrypt and/or sign these archives, they will be safe from
spying and/or modification by the server.


Required to run:
[devel/py-setuptools] [net/py-boto] [lang/python27] [devel/py-lockfile] [net/py-dropbox] [net/librsync]

Required to build:
[pkgtools/cwrappers]

Package options: duplicity-amazons3, duplicity-dropbox

Master sites:

SHA1: f2422b195b6d58b9a136d5745f81c3a54a77298e
RMD160: 043d6fc4c7964676ca1a88e4f240523d1f48bea5
Filesize: 1506.053 KB

Version history: (Expand)


CVS history: (Expand)


   2017-01-01 15:44:09 by Thomas Klausner | Files touched by this commit (577)
Log message:
Add python-3.6 to incompatible versions.
   2016-09-01 18:18:08 by Thomas Klausner | Files touched by this commit (4)
Log message:
Recursive bump for librsync shlib++
   2016-08-31 19:20:08 by Thomas Klausner | Files touched by this commit (1)
Log message:
Fix EGG_NAME so this packages correctly.
   2016-08-18 13:29:06 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
Log message:
Updated sysutils/duplicity to 0.7.09
------------------------------------
New in v0.7.09 (2016/07/24)
---------------------------
* Fixed bug #1600692 with patch from Wolfgang Rohdewald
  - Allow symlink to have optional trailing slash during verify.
* Merged in lp:~aaron-whitehouse/duplicity/07-fix_deja_dup_error_on_locked_files
  - Revert log.Error to log.Warn, as it was prior to the merge in rev 1224,
    as this was affecting other applications (e.g. deja dup; Bug #1605939).
* Merged in lp:~duplicity-team/duplicity/po-updates
   2016-07-09 15:04:18 by Thomas Klausner | Files touched by this commit (599)
Log message:
Remove python33: adapt all packages that refer to it.
   2016-07-07 10:35:46 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
Updated duplicity to 0.7.08.

From Frédéric Fauberteau in PR 51316.

New in v0.7.08 (2016/07/01)
---------------------------
* Merged in lp:~noizyland/duplicity/fix_azurebackend_typo
  - Fix typo in error handling code
* Merged in lp:~ghoz/duplicity/swift-prefix
  - adds the abiliy to use path in the swift backend, in order to have multiple
    backups to the same container neatly organized.
* Fixed bug #1573957 with patches from Dmitry Nezhevenko
  - upload last chunk with files_upload_session_finish to avoid extra request
  - upload small files using non-chunked api
* Fixed bug #1586934 with patches from Dmitry Nezhevenko
  - fixes error handling in wrapper
* Fixed bug #1586992 with patches from Dmitry Nezhevenko
  - Patch adds _delete_list to Par2Backend. And _delete_list fallbacks to
    _delete calls if wrapped backend has no _delete_list.
* Fixed bug #1589038 with patches from Malte Schröder
  - Added ignore_case option to selection functions
* Merged in lp:~mstoll-de/duplicity/b2-reauth
  - Fixes bug #1588503 b2: large uploads fail due to expired auth token
* Merged in lp:~aaron-whitehouse/duplicity/fix_pep8
  - Fix PEP8 error in onedrivebackend.py (space before bracket)
* Fixed bug #822697 ssh-options not passed in rsync over ssh
  - Added globals.ssh_options to rsync command line
* Increased default volume size to 200M, was 25M
* Fixed README-REPO to no longer mention 0.6-series
* Merged in lp:~aaron-whitehouse/duplicity/fix_stat_errors
  - Only give an error about not being able to access possibly locked file if
    that file is supposed to be included or scanned (i.e. not excluded).
    Fixes Bug #1089131
* Fixed bug #1594780 with patches from B. Reitsma
  - Use re.finditer() to speed processing
* Merged in lp:~aaron-whitehouse/duplicity/PEP8_W503_fixes
  - Fix PEP8 W503 errors (line break before binary operator) and enable the
    PEP8 test for this in test_code.CodeTest.
* Merged in lp:~aaron-whitehouse/duplicity/PEP8_line_length
  - Set line length error length to 120 (matching tox.ini) for PEP8 and
    fixed E501(line too long) errors.
* Merged in lp:~duplicity-team/duplicity/po-updates
   2016-05-24 21:10:46 by Benny Siegert | Files touched by this commit (4) | Package updated
Log message:
Update duplicity to 0.7.07.1. From Frederic Fauberteau in PR pkg/51061.

New in v0.7.07.1 (2016/04/19)
---------------------------
* Fixed bug #1568677 duplicity fails to use existing S3 bucket in boto backend
  - bug introduced by incomplete fix of bug #1296793
  - simplified setting of bucket locations
* Fixed bug #1569523 get_bucket unknown keyword location and my_location name error
  - bug introduced in improper fix of bug #1568677
  - gotta love those inconsistent APIs
* Fixed bug #1571134 incompatible with python-oauth2client version 2.x
  and #1558155 PyDrive backend broken, needs update to oauth2client library
  - used patch from https://bugs.debian.org/820725 but made changes
    to allow the user to continue using the old version
* Fixed bug #1570293 duplicity is very slow due to excessive fsync
  - removed flush() after write.
  - revert to previous version
   2016-04-18 19:49:21 by Benny Siegert | Files touched by this commit (4) | Package updated
Log message:
Update duplicity to 0.7.07. From Frédéric Fauberteau in PR pkg/51061.

New in v0.7.07 (2016/04/10)
---------------------------
* Merged in lp:~matthew-t-bentley/duplicity/b2
  - Fix import and error typos.
  - Allow multiple backups in the same bucket.
  - Fixes bug #1523498.
  - A couple fixes allowing multiple backups to be hosted in different
    folders in the same bucket as well as some logging for -v9.
* Random stuff:
  - remove RPM stuff from makedist
  - have makedist pull directly from VCS, not local dir
  - update po translation directory and build process
  - clean up some odd error messages
  - move Pep8 ignores to tox.ini
  - supply correct path for pydevd under Mac
  - fix some tests to run under Linux and Mac
* Partial fix for bug #1529606 - shell code injection in lftpbackend
  - still need to fix the other backends that spawn shell commands
* Make test_restart compatible with both GNUtar and BSDtar
* Fix stupid issue with functional test path for duplicity
* Applied patch from shaochun to fix bug #1531154,
  - --file-changed failed when file contains spaces
* Applied patch from abeverly to fix bug #1475890
  - allow port to be specified along with hostname on S3
  - adjusted help text and man page to reflect the change
* Undo changes to test_restart.py.  GNU tar is needed.
* Fix minor pep8 nit in collections.py
* Applied changes from ralle-ubuntu to fix bug 1072130.
  - duplicity does not support ftpes://
* Fixed bug #1296793 - Failed to create bucket
  - use S3Connection.lookup() to check bucket exists
  - skips Boto's Exception processing for this check
  - dupe of bug #1507109 and bug #1537185
* Merged in lp:~mifchip/duplicity/duplicity
  - fix bug #1313964, absolute path doesn't work for FTP
* Merged in lp:~fpytloun/duplicity/webdav-gssapi
  - support GSSAPI authentication in webdav backend
* Add more pylint ignore warnings tags
* Adjust so test_restart.py can run on Mac as well
* Fix for bug #1538333 - assert filecount == len(self.files_changed)
  - added flush after every write for all FileobjHooked files which
    should prevent some errors when duplicity is forcibly closed.
* Fix bug #1540279 - mistake in --help
* Applied patch from kay-diam to fix error handling in ssh pexpect,
  fixes bug #1541314
* Fixed a patching error in ssh_pexpect_backend.py
* Merged in lp:~fpytloun/duplicity/webdav-gssapi-fix
  - Make kerberos optional for webdav backend
* Merged in lp:~harningt/duplicity/multibackend-mirror
  - This changeset addresses multibackend handling to permit a
    mirroring option in addition to its "stripe" mode to make it
    a redundancy tool vs space-expansion tool. To do this without
    changing the configuration too much, I used the query string
    that would generally go unused for files to specify behavior
    that applies to all items inside the configuration file.
* Added acdclibackend.py from Stefan Breunig and Malay Shah
  - renamed from amazoncloudbackend to stress use of acd_cli
* Fixed some 2to3 and Pep8 issues that had crept in
* Backed out changes made by patching for bug #1541314.  These
  patches should not have been applied to the 0.7 series.
* Merged in lp:~rye/duplicity/mediafire
  - Backend for https://www.mediafire.com
  - Requires https://pypi.python.org/pypi/mediafire/ installed.
* Reverted changes made in rev 1164 w.r.t. getting the source from
  VCS rather than local directory.  Fixes bug #1548080.
* More fixes to dist/makedist to make it more OS agnostic.
* Merged in lp:~ed.so/duplicity/webdav.lftp.ssl-overhaul
    duplicity.1, commandline.py, globals.py
    - added --ssl-cacert-path parameter
    backend.py
    - make sure url path component is properly url decoded,
      in case it contains special chars (eg. @ or space)
    lftpbackend.py
    - quote _all_ cmd line params
    - added missing lftp+ftpes protocol
    - fix empty list result when chdir failed silently
    - added ssl_cacert_path support
    webdavbackend.py
    - add ssl default context support for python 2.7.9+
      (using system certs eg. in /etc/ssl/certs)
    - added ssl_cacert_path support for python 2.7.9+
    - gettext wrapped all log messages
    - minor refinements
* Applied patch from Dmitry Nezhevenko to upgrade dropbox backend:
  - update to SDK v2
  - use chunked upload
* Merged in lp:~aaron-whitehouse/duplicity/improve_present_get_sf_man_page
  - Improve man page entry for --exclude-if-present
* Merged in lp:~aaron-whitehouse/duplicity/split_glob_matching_from_select
  - Move glob matching code out of selection.py's Select function and
    into globmatch.py.
* Fix bug reported on the mailing list from Mark Grandi (assertion error
  while backing up).  In file_naming.parse() the filename was being lower
  cased prior to parsing.  If you had used a prefix with mixed case, we
  were writing the file properly, but could not find it in the backend.
* Merged in lp:~duplicity-team/duplicity/po-updates

New in v0.7.06 (2015/12/07)
---------------------------
* Merged in lp:~mnjul/duplicity/s3-infreq-access
  - This adds support for AWS S3's newly announced Infrequent Access
    storage class and is intended to implement Blueprint:
    https://blueprints.launchpad.net/duplic … d-ia-class .
  - A new command line option, --s3-use-ia, is added, and boto backend
    will automatically use the correct storage class value depending on
    whether --s3-use-rrs and --s3-use-ia is set. Command line parser will
    prompt error if both --s3-use-ia and --s3-use-rrs are used together,
    as they conflict with each other.
  - The manpage has been updated giving a short explanation on the new
    option. Its wording derives from Amazon's official announcement:
    https://aws.amazon.com/about-aws/whats- … cing-new-\
    amazon-s3-storage-class-and-lower-glacier-prices/
* The ptyprocess module no longer supports Python 2.6, so fix tox.ini to
  use an older version.  Make explicit environs for all tests.
* Upgrade to newest version of pep8 and pylint.   Add three ignores
  to test_pep8 and one to test_pylint to get the rest to pass.  They
* Applied patch from Alexander Zangerl to update to changes in lockfile
  API 0.9 and later.  Updated README to notify users.
* Modded tox.ini to use the latest lockfile.
* Merged in lp:~ed.so/duplicity/setup.shebang
  - Having the python interpreter searched in the PATH is much more
    flexible than the /usr/bin/python inserted into our scripts shebang
    by setuptools.  This patch prevents that. don't touch my shebang! :)
* Cleanup issues around Launchpad build, mainly lockfile >= 0.9.
* Merged in lp:~michal-s/duplicity/duplicity
  - WindowsAzureMissingResourceError and WindowsAzureConflictError
    changed due to SDK changes.
  are all valid in our case.
* Reversed previous changes to lockfile.  Now it will take any version
  extant in the LP build repository.  (PyPi is not avail in LP build).
* Merged in lp:~ed.so/duplicity/tempfile.tempdir
  - make sure packages using python's tempfile create temp files in
    duplicity's temp dir
* Fixed bug #1511308 - Cannot restore no-encryption, no-compression backup
  - Corrected code to include plain file in write_multivolume()
  - Added PlainWriteFile() to gpg.py
* Merged in lp:~michal-s/duplicity/duplicity
  - Fix azurebackend storage class import
* Merged in lp:~feraudet/duplicity/fix
  - Fix missing SWIFT_ENDPOINT_TYPE env var, bug 1519694.
* Fix bug #1520691 - Shell Code Injection in hsi backend
  - Replace use of os.popen3() with subprocess equivalent.
  - Added code to expand relative program path to full path.
  - Fix hisbackend where it expected a list not a string.
* Merged in lp:~noizyland/duplicity/azurebackend-fixes
  - Support new version of Azure Storage SDK
  - Refactor _list method to support containers with >5000 blobs
* Merged in lp:~matthew-t-bentley/duplicity/b2
  - Adds a backed for BackBlaze's (currently beta) B2 backup service.
  - This adds backends/b2backend.py, modifies log.py to add an
    error code and modifies commandline.py to add the b2://
    example to the help text.
* Pep8 corrections for recently released code.
* Fixed bug #1260666 universally by splitting the filelist for
  delete before passing to backend.
* Fixed bug #1369243 by adjusting messages to be more readable.
* Fixed bug #1375019 with patch from Eric Bavier (home to tmp).
* Fixed bug #1379575 with patch from Tim Ruffing (shorten webdav response).
* Fixed bug #1492301 with patch from askretov (manually refresh oauth).

New in v0.7.05 (2015/09/15)
---------------------------
* Merged in lp:~aaron-whitehouse/duplicity/fix_patch_error
  - Change use of mock.patch in unit tests to accommodate the obsolete
    version of python-mock on the build server.
* Fixed Bug 1476019 S3 storage bucket not being automatically created
  with patch from abeverley
* Merged in lp:~aaron-whitehouse/duplicity/launchpad_tox_profile
  - Add tox testing profile that mimics the packages installed on the
    Launchpad build server, to reduce the likelihood of tests passing
    our test suite, but failing on the build server (e.g. because of
    the out-of-date mock version).
* Merged in lp:~aaron-whitehouse/duplicity/disable_code_tests_for_lpbuildd
  - Set RUN_CODE_TESTS to 0 for lpbuildd tox profile, reflecting its value
    on the Launchpad build server (and therefore skipping PEP8, 2to3 and
    pylint). More accurately reflects the system we are mimicking and saves
    approximately 1 minute per test run.
* Fixed Bug 1438170 duplicity crashes on resume when using gpg-agent with
  patch from Artur Bodera (abodera).  Applied the same patch to incremental
  resumes as well.
* Merged in lp:~w.baranowski/duplicity/selection_debug
  - This little patch logs debug messages concerning path selection process,
    and so allows users to debug their include/exclude configuration.
* Merged in lp:~germar/duplicity/par2removefix
  - After reorganisation in revision 981 and the fix for bug #1406173 the
    par2backend does not remove .par2 files anymore when removing
    duplicity-*.gpg files.
  - This banch adds an unfiltered_list() method which is used in
    delete() and delete_list()
* Updated man pages to reflect more contributors.
* Fix bug #1493573.  Correct option typo in man page.
* Fix bug #1494228 CygWin: TypeError: basis_file must be a (true) file
  - The problem that caused the change to tempfile.TemporaryFile was due
    to the fact that os.tmpfile always creates its file in the system
    temp directory, not in the directory specified.  The fix applied was
    to use os.tmpfile in cygwin/windows and tempfile.TemporaryFile in all
    the rest.  This means that cygwin is now broken with respect to temp
    file placement of this one file (deleted automatically on close).
* Merged in lp:~bmerry/duplicity/pydrive-id-cache
  - This fixes the issue a number of users (including myself) have been
    having with duplicity creating files with duplicate filenames on
    Google Drive. It keeps a runtime cache of filename to object ID
    mappings, so that once it has uploaded an object it won't be fooled
    by weakly consistent directory listings.
* Merged in lp:~duplicity-team/duplicity/po-updates

New in v0.7.04 (2015/08/02)
---------------------------
* Merged in lp:~noizyland/duplicity/fix-progress
  - Fixes bug 1264744.  selection.filelist_globbing_get_sfs leaves the
    filelist file object's position at the end of the file. When the
    --progress option is used the filelists need to be read twice. On
    the second read nothing is read from the file because file has
    already been read and the position is EOF.  This patch calls seek(0)
    on the filelist to reset the position to BOF so that subsequent
    read() calls will return data.
* Added pylint ignore error in webdavbackend.py.
* Merged in lp:~bmerry/duplicity/pydrive-regular
  - This implements the proposal made by somebody else
    (http://lists.gnu.org/archive/html/dupli … 00037.html)
    to allow the pydrive backend to work with a normal drive account instead
    of a service account. It seems to be working for me: I was able to migrate
    seamlessly from the gdocs backend. It's set up so that a service account
    can still be used, depending on which environment variable is set.
    The man page is updated to describe how to use the new functionality.
* Merged in lp:~ed.so/duplicity/gdocs.pydrive
  - make pydrive new gdocs default backend
  - keep gdata backend as gdata+gdocs://
* Merged in lp:~raymii/duplicity/fix-swiftbackend-max-10000-files-in-list
  - Swiftclient by default returns at max 10000 files. By adding
    full_listing=True we make sure all objects are returned.
    Ref: https://lists.nongnu.org/archive/html/d … 00060.html
    and \ 
http://docs.openstack.org/developer/pyt … _container
* Fix a couple of PEP8 glitches.
* Fixed bug 791794 - description of --gpg-options is misleading, Simply
  needed to add the '--' before the options as in "--opt1 --opt2=parm".
* Fixed bug 1465335 - pydrive still use files in trash can - with patch
  from Kuang-che Wu to ignore trashed files.
* Fixed bug 1452263 - par2 option not working on small processors - with patch
  from Kuang-che Wu to ignore default 30 second timeout.
* Fixed bug 1466160 - pydrive backend is slow to remove old backup set - with
  patch from Kuang-che Wu to implement _delete_list().
* Fixed bug 1466582 - reduce unnecessary syscall with --exclude-if-present - with
  patch from Kuang-che Wu to make sure resulting path is a directory.
* Merged in lp:~ed.so/duplicity/gpg.binary
  - new parameter --gpg-binary allows user to point to a different gpg binary,
    not necessarily in path
* Merged in lp:~aaron-whitehouse/duplicity/fix_POTFILES.in_and_run-tests
  - Fixed two filename references in po/POTFILES.in, a mistake which crept in in
    rev 1093 and caused testing/run-tests to fail with "IndexError: list index
    out of range".
* Merged in lp:~aaron-whitehouse/duplicity/reactivate_progress_test
  - Re-enable the test of the --progress option \ 
(test_exclude_filelist_progress_option),
    which was marked as an expected failure. The issue causing this test to fail was
    fixed in revision 1095 and the test now passes.
* Fixed bug 1471348 Multi back-end doesn't work with hubiC
  - added init of appropriate superclass in both cases.
* Fixed bug 1471348 Multi back-end doesn't work with hubiC (again)
  - hubiC should reach up to duplicity.backend.__init__
* Merged in lp:~aaron-whitehouse/duplicity/bug_884371
  - Fixed Bug #884371 - Stopped an exclude glob trumping an earlier scan glob, \ 
but also
    ensured that an exclude glob is not trumped by a later include. This fix is \ 
important,
    as without it files that are specified to be included are not being backed \ 
up as expected.
  - Fixed Bug #932482 - a trailing slash at the end of globs no longer prevents \ 
them working
    as expected.
* Merged in lp:~aaron-whitehouse/duplicity/reenable_tests
  - Re-enable unit.test_selection tests that had been temporarily commented out.
* Merged in lp:~aaron-whitehouse/duplicity/trailing_slash_match_dirs
  - Made globs with trailing slashes only match directories, not files, fixing \ 
Bug #1479545.
* Merged in lp:~aaron-whitehouse/duplicity/improve_tox_and_python2-6_testing
  - Testing improvements, particularly in relation to testing against Python \ 
version 2.6:
    * tox.ini fixed so that it is possible to run individual tests against both \ 
Python 2.6 and 2.7;
    * updated test_code.py to use unittest2 for Python versions < 2.7 \ 
(instead of failing);
    * ./run-tests now correctly runs all tests against both Python 2.6 and 2.7; and
    * improved testing directions in README-REPO.
* Merged in lp:~dag-stenstad/duplicity/swift_authversion_3_support
  - Added support for Openstack Identity v3 in the Swift backend.
* Merged in lp:~aaron-whitehouse/duplicity/fix_2to3_issues
  - Fixed 2to3 issues. Updated README-REPO with more test information. Updated \ 
pylint and
    test_diff2 descriptions to make it clear these require packages to be \ 
installed on the
    sytem to pass. All tests pass on Python 2.6 and Python 2.7 as at this revision.

New in v0.7.03 (2015/05/11)
---------------------------
* Merged in lp:~aaron-whitehouse/duplicity/filelist_combine
  - Merged globbing and non-globbing filelists to use the same code path
    and all accept globbing characters. Added deprecation warning to the
    --exclude-globbing-filelist and include-globbing-filelist options in
    commandline.py and hid them from help output. Updated the manual
    (and unit tests) accordingly.
  - Note that this does trigger a change in behaviour for duplicity.
    Previously, include patterns in include-filelist did not match files
    in a directory that was included, so /usr/local in an include file
    would not have matched /usr/local/doc. Now, this folder would be
    included, as would occur if --include or the old
    --include-globbing-filelist was used. Additional lines will therefore
    need to be added to filelists to unambiguously exclude unwanted
    subfolders, if this is intended.
  - Mark --include-filelist-stdin and --exclude-fielist-stdin for
    deprecation and hide from --help output.
* Fix bug 1432999 with hint from Antoine Afalo.
  - '/'s at end of destination cause problems with onedrivebackend.
* Fix bug 1434702 with help from Robin Nehls
  - incorrect response BackendException while downloading signatures file.
* Fix bug 1437789 with patch from pdf
  - par2backend.py incorrect syntax in get()
* Merge in lp:~stynor/duplicity/multi-backend
  - A new backend that allows use of more than one backend stores (e.g. to
    combine the available space from more than one cloud provider to make
    a larger store available to duplicity).
* Move requirements section lower in manpage.
* Merge in lp:~cemsbr/duplicity/duplicity
  - Fix bug 1432229 in Copy.com backend:
    Reply header has no content-type for JSON detection. Now, we also check
    whether the content starts with '{'.
* Fixed bug 1444404 with patch from Samu Nuutamo
  - rdiffdir patch crashes if a regular file is changed to a non-regular
    file (symlink, fifo, ...)
* Fixed bug 1448249 and bug 1449151 thanks to David Coppit.
  - When patching, close base file before renaming
  - Enable --ignore-errors flag in rdiffdir
* Added ability to get single file status from collection-status with
  patch from jitao (bug 1044715), like so:
  $ duplicity collection-status --file-changed c1 file://./foo
* Merge in lp:~sjakthol/duplicity/onedrive-error-message
  - Add proper error message for OneDrive backend when python-requests or
    python-requests-oauthlib is not installed (bug 1453355).

New in v0.7.02 (2015/03/10)
---------------------------
* Merged in lp:~vincegt/duplicity/swift_regionname
  - Fixes bug #1376628
  - Add mapping of SWIFT_REGIONNAME to select region inside SWIFT when a
    provider proposes more than one region.
* Merged in lp:~aaron-whitehouse/duplicity/progress_option_error
  - Added test_exclude_globbing_filelist_progress_option into
    functional/test_selection.py, which shows the error reported in
    Bug #1264744 - that the --exclude-globbing-filelist does not backup
    the correct files if the --progress option is used. Test is marked as
    an expected failure so as not to cause the test suite to fail.
* Merged in lp:~noizyland/duplicity/fix_azurebackend_container_names
  - Azure Backend examples have underscores in the container names.  These
    are not valid Azure container names.  The underscores have been replaced
    with hypens and a note about valid container names added to the man page.
  - Also corrects a problem where Azure Exceptions were returing unicode
    strings that were not being handled correctly.
* Merged in lp:~user3942934/duplicity/pydrive
  - Currently duplicity uses gdocs backend for Google Drive backups.
    gdocs uses deprecated API and don't allow backups for managed Google
    accounts.  (see https://bugs.launchpad.net/duplicity/+bug/1315684)
  - Added pydrive backend that solves both of those problems. Published
    also on https://github.com/westerngateguard/dup … e-backend.
* Fixed some tabs/spaces problems that were causing install failures.
* Fixed variable typo in commandline.py that was causing build fails.
* Merged in lp:~duplicity-team/duplicity/po-updates
* Remove 'gs' and 's3+http' from uses_netloc[].  Fixes Bug 1411803.
* Fixed bug # 1414418
  - Aligned commandline.py options and help display contents.
  - Aligned commandline.py options and manpage contents.
* Changed --s3_multipart_max_timeout to --s3-multipart-max-timeout to be
  consistent with commandline option naming conventions.
* Applied patch from Adam Reichold to fix bug # 1413792.
* Merged in lp:~angusgr/duplicity/exclude-older-than
  - Add "--exclude-older-than" commandline option, that allows you to only
    back up files with a modification date newer than a particular threshold.
* Merged in lp:~aaron-whitehouse/duplicity/bug_884371_asterisks_in_includes
  - Added tests to unit/test_selection.py and funtional/test_selection.py
    to show the behaviour reported in Bug #884371, i.e. that selection is
    incorrect when there is a * or ** on an include line of a filelist or
    commandline --include.
* Merged in \ 
lp:~aaron-whitehouse/duplicity/bug_932482_trailing_slashes_and_wildcards_error
  - Added functional and unit tests to show Bug #932482 - that selection does
    not work correctly when excludes (in a filelist or in a commandline option)
    contain both a single or double asterisk and a trailing slash.
* Misc fixes for the following PEP8 issues:
  - E111, E121, E122, E124, E125, E126, E127, E128, E201, E202, E203,
    E231, E241, E251, E261, E262, E271, E272, E301, E302, E303, E401,
    E502, E701, E702, E703, E711, E721, W291, W292, W293, W391
  - to run pep8 on duplicity use 'pep8 --ignore=E501'
  - see http://pep8.readthedocs.org
* Fixes for 2to3 issues
* Fix spelling error in manpage, bug 1419314.
* Fix _librsyncmodule.c compilation, bug 1416344, thanks to Kari Hautio.
* Really fix bug 1416344 based on comment #5 by Roman Tereshonkov.
* Fix for --pydevd debug environment and location under Eclipse.
* Fix for bug where scp was actually working as scp and not working with
  rsync.net because of using extraneous test command in restricted shell.
  Was trying "test -d 'foo' || mkdir -p 'foo'", now only "mkdir \ 
-p foo".
* remove extraneous string format arg in previous scp fix.

New in v0.7.01 (2015/01/11)
---------------------------
Enhancements:
* Undid move of testing/test_code.py.  Instead I fixed it
  so that it would not run during PPA build.  It now needs
  the setting RUN_CODE_TESTS=1 in the environment which is
  supplied in the tox.ini file.
* Moved testing/test_code.py to testing/manual/code_test.py
  so PPA builds would succeed.  Should be moved back later.
* Remove valid_extension() check from file_naming.py.  It was
  causing failed tests for short filenames.  Thanks edso.
* Partial fix for PPA build failures, new backend name.
* Merged in lp:~ed.so/duplicity/fix.dpbx.import
  - fix dpbx import error import lazily
* Merged in lp:~hooloovoo/duplicity/fix-typo-in-test-description
  - Fixed spelling mistake/typo in a description of a test.
* Merged in lp:~mterry/duplicity/missing-unicode-escape
  - Convert restore_dir to unicode before printing.
* Merged in lp:~ed.so/duplicity/lftp.ncftp.and.prefixes
  - retire --ssh-backend, --use-scp parameters
  - introduce scheme prefixes for alternative backend selection
    e.g. ncftp+ftp://, see manpage
  - scp is now selected via scheme e.g. scp://
  - added lftp fish, webdav(s), sftp support
* Merged in lp:~mterry/duplicity/code-nits
  - Fix some pylint/pep8 nits that prevented the test_code.py test from passing.
* Merged in lp:~mterry/duplicity/debian-dir
  - Add a debian/ directory to make it easier to manage the PPAs for duplicity.
* In webdavbackend.py:
  - Fixed bug 1396106 with change by Tim Ruffing, mispelled member.
  - Added missing 'self.' before member in error message.
* Merged in lp:~adrien-delhorme/duplicity/hubic
  - Add Hubic support through pyrax and a custom pyrax_identity module.
* Fixed bug 1385599 with changes by Yannick Molin. SSL settings are now
  conditioned on protocol ftp or ftps.
* Partial fix of bug 1236248 with changes by az, manpage warning about
  --extra-clean, however, recovery with missing sig files is broken.
* Fixed bug 1255453 with changes by Gaudenz Steinlin, report backend import
  results, both normal and failed, at INFO log level.
* Manually merged in lp:~m4ktub/duplicity/0.6-reliability
  - Per fix proposed in Bug #1395341.
* Modded .bzrignore to ignore *.egg test dependencies, normalized, sorted.
* Merged in lp:~ed.so/duplicity/paramiko.identyfile
  - fix identity file parsing of --ssh-options for paramiko
  - manpage fixes
* Source formatted, using PyDev, all source files to fix some easily fixed
  PEP8 issues. Use ignore space when comparing against previous versions.
* Merge in lp:~andol/duplicity/signkeyformat
  - Allow --sign-key to use short format, long format alt. full fingerprint.
* Merge in lp:~hooloovoo/duplicity/verify-not-check-source
  - Tests to validate that duplicity does not check filesystem source during
    verify unless --compare-data is specified
* Merge in lp:~ed.so/duplicity/move_netloc
  - move netloc usage definitions into respective backends
  - fix "[Question #259173]: rsync backend fails"
    https://answers.launchpad.net/duplicity … ion/259173
* Make ssh an unsupported backend scheme
* Temporarily disable RsyncBackendTest and test_verify_changed_source_file
* Merge in lp:~hooloovoo/duplicity/test-verify-improvements
  - Fix up test_verify, which was a bit of a mess:
  - Simplify test_verify.py to just do a simple backup and verify on a
    single file in each test.
  - Modify tests to correctly use --compare-data option.
  - Add tests for when the source files have atime/mtime manipulated.
* Fix duplicity verify to ignore the file system when globals.compare_data is
  False.  This means that verify only validates the viability of the backup
  itself unless --compare-data is specified.
* Reenable test_verify_changed_source_file test
* Merged in \ 
lp:~hooloovoo/duplicity/add-additional-verify-tests-for-corrupted-archives
  - Add tests to test_verify.py to test that verify fails if the archive
    file is corrupted. Changed file objects to use the with keyword to ensure
    that the file is properly closed.
  - Small edit to find statement in verify_test.sh to make it work as
    expected (enclose string in quotes).
* Merged in lp:~hooloovoo/duplicity/add-else-to-badupload-try-except
  - Badupload test previously did not have an else in the try-except. The
    test passed if the except was triggered, but would also pass if the
    test did not trigger an error at all.
* Fixed bug 1406173 by applying patch supplied in report
  - Ignore .par2 files in remote file list
* Removed redundant shell test testing/verify_test.sh
* Misc fixes for the following PEP8 issues:
   - E211, E221, E222, E225, E226, E228
   - see http://pep8.readthedocs.org
* Fixed bug 1278529 by applying patch supplied in report
  - Use get_bucket() rather than lookup() on S3 to get proper error msg.
* Merged in lp:~stapelberg+ubuntu/duplicity/add-onedrive-backend
  - Add a Microsoft OneDrive backend
* Merged in lp:~hooloovoo/duplicity/filelist_select_bug_1408411
  - Adds functional test cases that fail because of Bug #1408411 (commented
    out), to assist in fixing that bug.
* Merged in lp:~hooloovoo/duplicity/process_filelists_for_spaces_etc
  - Process filelists to remove imperfections such as blank lines, comments
    and leading/trailing whitespace. Also correctly processes quoted folders
    containing spaces in their names. Extensive unit and functional tests to
    test these changes (and selection more generally).
  - The branch does add an additional folder to testfiles.tar.gz called
    select2. This included a folder with a trailing space, to test the quote
    test. The subfolders also have clearer names than in the "select" \ 
folder
    (eg "1sub2sub3") which makes it easier to keep track of issues in \ 
tests.
* Merged in lp:~9-sa/duplicity/FixBug1408289
  - Fix bug #1408289
  - Wrong attribute name prevented raise of client exception, working now
* Merged in lp:~noizyland/duplicity/azurebackend
  - Add backend for Azure Blob Storage Service

New in v0.7.00 (2014/10/23)
---------------------------
Enhancements:
* Adjust unit tests to expect single FTP backend
* Merged in lp:~moritzm/duplicity/duplicity
  - Use lftp for both FTP and FTPS
* Merged in lp:~ed.so/duplicity/0.7-dpbx.importfix
  - fix this showstopper with the dropbox backend
    "NameError: global name 'rest' is not defined"
* Merged in lp:~jflaker/duplicity/BugFix1325215
  - The reference to "--progress_rate" in the man page as a parameter is
    incorrect. Should be "--progress-rate".
* Merged in lp:~hooloovoo/duplicity/updated-README-REPO
  - Changes to README-REPO to reflect the restructuring of the directories.
* Fixed bug 1375304 with patch supplied by Aleksandar Ivanovic
* Merged in lp:~ed.so/duplicity/webdav200fix-0.7
  - webdav backend fix "BackendException: Bad status code 200 reason OK. \ 
" when
    restarting an interrupted backup and overwriting partially uploaded volumes.
* Merged in lp:~mterry/duplicity/require-2.6
  - Require at least Python 2.6.
  - Our code base already requires 2.6, because 2.6-isms have crept in. Usually
    because we or a contributor didn't think to test with 2.4. And frankly,
    I'm not even sure how to test with 2.4 on a modern system.
* Merged in lp:~mterry/duplicity/drop-pexpect
  - Drop our local copy of pexpect in favor of a system version.
  - It's only used by the pexpect ssh backend (and if you're opting into that,
    you probably can expect that you will need pexpect) and the tests.
  - I've done a quick smoketest (backed up and restored using
    --ssh-backend=pexpect) and it seemed to work fine with a modern version
    of pexpect.
* Merged in lp:~mterry/duplicity/2.6isms
  - Here's a whole stack of minor syntax modernizations that will become
    necessary in python3. They all work in python2.6.
  - I've added a new test to keep us honest and prevent backsliding on these
    modernizations. It runs 2to3 and will fail the test if 2to3 finds anything
    that needs fixing (with a specific set of exceptions carved out).
  - This branch has most of the easy 2to3 fixes, the ones with obvious and
    safe syntax changes.
  - We could just let 2to3 do them for us, but ideally we use 2to3 as little
    as possible, since it doesn't always know how to solve a given problem.
    I will propose a branch later that actually does use 2to3 to generate
    python3 versions of duplicity if they are requested. But this is a first
    step to clean up the code base.
* Merged in lp:~mterry/duplicity/drop-static
  - Drop static.py.
  - This is some of the oldest code in duplicity! A bzr blame says it is
    unmodified (except for whitespace / comment changes) since revision 1.
  - But it's not needed anymore. Not really even since we updated to python2.4,
    which introduced the @staticmethod decorator. So this branch drops it and
    its test file.
* Merged in lp:~mterry/duplicity/py3-map-filter
  - In py3, map and filter return iterable objects, not lists. So in each case
    we use them, I've either imported the future version or switched to a list
    comprehension if we really wanted a list.
* Merged in lp:~mterry/duplicity/backend-unification
  - Reorganize and simplify backend code.  Specifically:
    - Formalize the expected API between backends and duplicity.  See the new
      file duplicity/backends/README for the instructions I've given authors.
    - Add some tests for our backend wrapper class as well as some tests for
      individual backends.  For several backends that have some commands do all
      the heavy lifting (hsi, tahoe, ftp), I've added fake little mock commands
      so that we can test them locally.  This doesn't truly test our integration
      with those commands, but at least lets us test the backend glue code.
    - Removed a lot of duplicate and unused code which backends were using (or
      not using).  This branch drops 700 lines of code (~20%)
      in duplicity/backends!
    - Simplified expectations of backends.  Our wrapper code now does all the
      retrying, and all the exception handling.  Backends can 'fire and forget'
      trusting our wrappers to give the user a reasonable error message.
      Obviously, backends can also add more details and make nicer error
      messages.  But they don't *have* to.
    - Separate out the backend classes from our wrapper class.  Now there is no
      possibility of namespace collision.  All our API methods use one
      underscore.  Anything else (zero or two underscores) are for the backend
      class's use.
    - Added the concept of a 'backend prefix' which is used by par2 and gio
      backends to provide generic support for "schema+" in urls -- \ 
like par2+
      or gio+.  I've since marked the '--gio' flag as deprecated, in favor of
      'gio+'.  Now you can even nest such backends like
      par2+gio+file://blah/blah.
    - The switch to control which cloudfiles backend had a typo.  I fixed this,
      but I'm not sure I should have?  If we haven't had complaints, maybe we
      can just drop the old backend.
    - I manually tested all the backends we have (except hsi and tahoe -- but
      those are simple wrappers around commands and I did test those via mocks
      per above).  I also added a bunch more manual backend tests to
      ./testing/manual/backendtest.py, which can now be run like the above to
      test all the files you have configured in config.py or you can pass it a
      URL which it will use for testing (useful for backend authors).
* Merged in lp:~mterry/duplicity/py2.6.0
  - Support python 2.6.0.
  - Without this branch, we only support python >= 2.6.5 because that's when
    python's urlparse.py module became its more modern incarnation. (I won't
    get into the wisdom of them making such a change in the middle of the
    2.6 lifecycle.)
  - Also, the version of lockfile that I have (0.8) doesn't work with python
    2.6.0 or 2.6.1 due to their implementation of
    threading.current_thread().ident returning None unexpectedly. So this
    branch tells lockfile not to worry about adding the current thread's
    identifier to the lock filename (we don't need a separate lock per thread,
    since our locking is per process).
  - I've tested with 2.6.0 and 2.7.6 (both extremes of our current support).
* Update shebang line to python2 instead of python to avoid confusion.
* Merged in lp:~3v1n0/duplicity/copy.com-backend
  - I've added a backend for Copy.com cloud storage, this supports all the
    required operations and works as it should from my tests.
  - You can use it by calling duplicity with something like:
    copy://account@email.com:your-password@copy.com/duplicity
  - The only thing I've concerns with is the optimized support for _delete_list
    which can't be enabled here because the test_delete_list tries also to
    delete a not-existing files, and it requires the backend not to raise an
    exception in that case (is this somewhat wanted or could we do the same as
    for _delete or _query?)
* Merged in lp:~ed.so/duplicity/webdav200fix-0.7
  - webdav backend fix "BackendException: Bad status code 200 reason OK. \ 
" when
    restarting an interrupted backup and overwriting partially uploaded volumes.
* Merged in lp:~mterry/duplicity/webdav-fixes
  - This branch fixes two issues I saw when testing the webdav backend:
  - 1) Errors like the following: "Attempt 1 failed. BackendException: File
    /tmp/duplicity-LQ1a0i-tempdir/mktemp-u2aiyX-2 not found locally after get
    from backend".  These were caused by the _get() method not calling setdata()
    on the local path object, so the rest of the code thought it didn't exist.
  - 2) Some odd issues from stale responses/data. We have a couple places in
    webdavbackend.py where we close the connection before making a request
    because of this problem. But I've changed it to do it every time, more
    reliably, by putting a _close() call inside the request() method.
  - With this, the webdav backend seems fine to me.
* Merged in lp:~antmak/duplicity/0.7-par2-fix
  - Useful fix for verbatim par2cmdline options (like "-t" in par2-tbb \ 
version)
* Fixed bug 1327550: OverflowError: signed integer is greater than maximum
  - Major and minor device numbers are supposed to be one byte each.  Someone
    has crafted a special system image using OpenVZ where the major and minor
    device numbers are much larger (ploop devices).  We treat them as (0,0).
* Added sxbacked.py, Skylable backend.  Waiting on man page updates.
* Merged in lp:~ed.so/duplicity/manpage.verify
  - Clarify verify's functionality as wished for by a user surprised with a big
    bandwidth bill from rackspace.
* Merged in lp:~jeffreydavidrogers/duplicity/duplicity
  - This change fixes two small typos in the duplicity man page.
* Merged in lp:~johnleach/duplicity/1315437-swift-container-create
  - Check to see if the swift container exists before trying to create it,
    in case we don't have permissions to create containers. Fixes #1315437
* Merged in lp:~ed.so/duplicity/manpage.blocksize
  - add --max_blocksize doc
  - reorder 'a note on filename prefixes' into alphabetical order