Duplicity 0.8.14 Released

Written for Duplicity by Kenneth Loafman on 2020-07-04

New in v0.8.14 (2020/07/04)
---------------------------
* Fixes for rclonebackend from Francesco Magno (original author)
  - copy command has been replaced with copyto, that is a specialized
    version for single file operation. Performance-wise, we don't have
    to include a single file in the local side directory, and we don't
    have to list all the files in the remote to check what to syncronize.
    Additionally, we don't have to mess up with renaming because the
    copy command didn't support changing filename during transfer
    (because was oriented to transfer whole directories).
  - delete command has been replaced with deletefile. Same here, we
    have a specialized command for single file operation. Much more efficient.
  - ls command has been replaced with lsf, that is a specialized version
    that returns only filenames. Since duplicity needs only those, less
    bytes to transfer, and less parsing to do.
  - lastly, I have reintroduced a custom subprocess function because the one
    inherithed from base class is checked, and throws an exception in case of
    non zero return code. The ls command family returns a non zero value if
    the directory does not exist in the remote, so starting a new backup
    in a non existent directory is impossible at the moment because ls fails
    repeatedly until duplicity gives up. This is a bug in the current implementation.
    There is the same problem (but less severe) in _get method, using the default
    self.subprocess_popen a non zero return code will throw an exception before we
    can cleanup the partially downloaded file, if any.
* Fixed bug #1875937 - validate_encryption_settings() fails w/S3 glacier
  - Skip validation with a warning if S3 glacier or deep storage specified
* Patched in a megav2backend.py to update to MEGAcmd tools.
  - Author: Jose L. Domingo Lopez <github@24x7linux.com>
  - Man pages, docs, etc. were included.
* More fixes for bug #1877885 - Catch quota overflow on Mega upload.
* Merged in jmakovicka:master - Support PyDrive2 library in the pydrive backend
  - Unlike PyDrive, the PyDrive2 fork is actively maintained.
* Merged in mikix:mikix/rename-fix - Fix --rename encoding
  - The --rename argument wasn't working because its arguments were coming in and
    being saved as unicode. But then compared against bytestring index path parts.
  - This MR fixes that by saving the rename pieces as bytestrings up front.
* Fixes for issue #7, par2backend produces badly encoded filenames.
* Set deprecation version to 0.9.0 for short filenames.

Read all announcements