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.

Log message:
Update to 0.7.17
Upstream changes:
New in v0.7.17 (2018/02/26)
---------------------------
* Removed changes made in bug #1044715 Provide a file history feature
- Changes required too much memory to carry in the manifest
- The option --file-changed in collection-status is now invalid
- This will close bugs: #1730451, #896728, #1526557, #1550176
- Starting a full backup will be needed to fully utilize this fix
* Fix update of Launchpad Translations. Translations were not being picked
up on a daily basis and we got several months behind.

Log message:
Updated sysutils/duplicity to 0.7.16
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()
takes a string not a list. Now it takes both.
* Updated web page for new megabackend requirements.
* Patched in lp:~mterry/duplicity/more-decode-issues
- Here's some fixes for another couple UnicodeDecodeErrors.
- The duplicity/dup_time.py fixes when a user passes a utf8 date string (or a \
string with bogus
utf8 characters, but they have to really try to do that). This is bug 1334436.
- The bin/duplicity change from str(e) to util.uexc(e) fixes bug 1324188.
- The rest of the changes (util.exception_traceback and bin/duplicity changes \
to use it) are to
make the printing of exceptions prettier. Without this, if you see a French \
exception, you see
"accept\xe9es" instead of "acceptées".
- You can test all of these changes in one simple line:
$ LANGUAGE=fr duplicity remove-older-than $'accept\xffées'
* Fix backend.py to allow string, list, and tuple types to support megabackend.py.
* Fixed bug #1715650 with patch from Mattheww S
- Fix to make duplicity attempt a get first, then create, a container
in order to support container ACLs.
* Fixed bug #1714663 "Volume signed by XXXXXXXXXXXXXXXX, not XXXXXXXX"
- Normalized comparison length to min length of compared keys before comparison
- Avoids comparing mix of short, long, or fingerprint size keys.
* Merged in lp:~mterry/duplicity/rename-dep
- Make rename command a dependency for LP build
* 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 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
* Fixed bug #1720159 - Cannot allocate memory with large manifest file since 0.7.03
- filelist is not read if --file-changed option in collection-status not present
- This will keep memory usage lower in non collection-status operations
* Fixed bug #1723890 with patch from Killian Lackhove
- Fixes error handling in pydrivebackend.py
* Fixed bug #1730902 GPG Error Handling
- use util.ufn() not str() to handle encoding
New in v0.7.14 (2017/08/31)
---------------------------
* Merged in lp:~dawgfoto/duplicity/skip_sync_collection_status
- collection-status should not sync metadata
- up-to-date local metadata is not needed as collection-status is
generated from remote file list
- syncing metadata might require to download several GBs
* Fixed slowness in 'collection-status' by basing the status on the
remote system only. The local cache is treated as empty.
* Fixed encrypted remote manifest handling to merely put out a non-fatal
error message and continue if the private key is not available.
* Patched in lp:~mterry/duplicity/giobackend-display-name
- giobackend: handle a wider variety of gio backends by making less assumptions;
in particular, this fixes the google-drive: backend
* Fixed bug #1709047 with suggestion from Gary Hasson
- fixed so default was to use original filename
* Fixed PEP8 errors in bin/duplicity
* Merged in lp:~mterry/duplicity/gio_child_for_display_name_0.7
- gio: be slightly more correct and get child GFiles based on display name
* Fixed bug #1711905 with suggestion from Schneider
- log.Warn was invoked with log.warn in webdavbackend.py
* Merged in lp:~mterry/duplicity/gpg-tag-versions
- Support gpg versions numbers that have tags on them.
- This can happen if you build gpg from git trunk (e.g. 2.1.15-beta20). Or if \
you run
against the freedesktop flatpak runtime (e.g. 2.1.14-unknown).
* Fixed bug #1394386 with new module megabackend.py from Tomas Vondra
- uses megatools from https://megatools.megous.com/ instead of mega.py library
which has been deprecated
- fixed copyright and PEP8 issues
- replaced subprocess.call() with self.subprocess_popen() to standardize
* Fixed bug #1713640 with patch from Aleksandar Ivanisevic
- replace 2.7 syntax with 2.6 equivalent
* Fixed bug #1538333 Assertion error in manifest.py: assert filecount == ...
- Made sure to never pass .part files as true manifest files
- Changed assert to log.Error to warn about truncated/corrupt filelist
- Added unit test to make sure detection works
- Note: while this condition is serious, it will not affect the basic backup \
and restore
functions. Interactive options like --list-files-changed and --file-changed \
will not
work correctly for this backup set, so it is advised to run a full backup as \
soon as
possible after this error occurs.
* Fixed bug #1638033 Remove leading slash on --file-to-restore
- code already used rstrip('/') so change to just strip('/')
New in v0.7.13.1 (2017/06/18)
-----------------------------
* Fixed problem in dist/makedist when building on Mac where AppleDouble
files were being created in the tarball. See:
\
https://superuser.com/questions/61185/w … ll-on-os-x
New in v0.7.13 (2017/06/12)
---------------------------
* Fixed bug #1680682 with patch supplied from Dave Allan
- Only specify --pinentry-mode=loopback when --use-agent is not specified
* Fixed man page that had 'cancel' instead of 'loopback' for pinentry mode
* Fixed bug #1684312 with suggestion from Wade Rossman
- Use shutil.copyfile instead of os.system('cp ...')
- Should reduce overhead of os.system() memory usage.
* Fixed bug #1320832 with suggestion from Oskar Wycislak
- Use chunks instead of reading it all in swiftbackend
* Fixed bug #1689632 with patch from Howard Kaye
- On MacOS, the tempfile.TemporaryFile call erroneously raises an
IOError exception saying that too many files are open. This causes
restores to fail randomly, after thousands of files have been restored.
* Fixed bug #1320641 and others regarding lockfile
- swap from lockfile to fasteners module
- use an fcntl() style lock for process lock of duplicity cache
- lockfile will now clear if duplicity is killed or crashes
* May have finally fixed bug #1556553, "Too many open files...".
- Applied patch from Howard Kaye, question #631423. The fix is to dup
the file descriptor, and then close the file in the deallocator
routine in the glue code. Duping the file lets the C code and the Python
code each close the file when they are done with it.
- Invalidated and removed the fix put in for bug #1320832.
- Caveat: long incremental chains will still eat up a large number of file
descriptors. It's a very risky practice, so I'm not inclined to fix it.
* Revisited bug #670891 with patch from Edgar Soldin
- Forced librsync.PatchedFile() to extract file object from TemporaryFile()
object when on Windows or Cygwin systems. This allows us to avoid the
problem of tmpfile() use which creates temp files in the wrong place.
- See discussion at https://bugs.launchpad.net/duplicity/+bug/670891
* Fix bug #1672540 with patch from Benoit Nadeau
- Rename would fail to move par files when moving across filesystems.
- Patch uses shutil.move() to do the rename instead.
* Fixed bug #1265765 with patches from Matthias Larisch and Edgar Soldin
- SSH Paramiko backend now uses BufferedFile implementation to enable
collecting the entire list of files on the backend.
* Copy.com is gone so remove copycombackend.py.
* Merged in lp:~xlucas/duplicity/swift-multibackend-bug
- Fix a bug when swift backend is used in a multibackend configuration.
* Merged in lp:~duplicity-team/duplicity/po-updates
New in v0.7.12 (2017/03/21)
---------------------------
* Fixed bug #1623342 with patch supplied by Daniel Jakots
- Failing test on OpenBSD because tar/gtar not found
* Fixed bug #1654220 with patch supplied by Kenneth Newwood
- Duplicity fails on MacOS because GPG version parsing fails
* Fixed bug #1655268 "--gpg-binary option not working"
- If gpg binary is specified rebuild gpg profile using new binary location
* Fixed bug #1658283 "Duplicity 0.7.11 broken with GnuPG 2.0"
- Made gpg version check more robust than just major version
- Now use --pinentry-mode=loopback on gpg 2.1 and greater
- Removed check for non-Linux systems, a false problem
* Merged in lp:~matthew-t-bentley/duplicity/duplicity
- Sets a user agent. Backblaze asked for this in case there are errors that \
originate
from the Duplicity B2 backend
- Only retrieves a new upload URL when the current one expires, to bring it in line
with their best practices for integrations: \
https://www.backblaze.com/b2/docs/integ … klist.html
* Add detail about import exceptions in onedrivebackend.py
* Fixed bug #1657916 with patch supplied by Daniel Harvey
- B2 provider cannot handle two backups in the same bucket
* Fixed bug #1603704 with patch supplied by Maciej Bliziński
- Crash with UnicodeEncodeError
* Some fixes to gpg.py to handle gpg1 & gpg2 & gpg2.1 commandline issues
- --gpg-agent is optional on gpg1, but on gpg2 it is used automatically
- --pinentry-mode is not a valid opt until gpg2.1, so condition on that
* Fixed bug #1367675 - IMAP Backend does not work with Yahoo server
- added the split() as needed in 'nums=list[0].strip().split(" ")'
- the other fixes mentioned in the bug report comments were already done
* Fixed bug #1671852 - Code regression caused by revision 1108
- change util.uexc() back to bare uexc()
* Fixed bug #1668750 - Don't mask backend errors
- added exception prints to module import errors
New in v0.7.11 (2016/12/31)
---------------------------
* Fixed bugs #815510 and #1615480
- Changed default --volsize to 200MB
* Merged in lp:~mstoll-de/duplicity/duplicity
- Backblaze announced a new domain for the b2 api
* Merged in \
lp:~aaron-whitehouse/duplicity/bug_1620085_exclude-if-present-locked-folder
- Fixes Bug #1620085: --exclude-if-present gives OSError looking for tag in \
locked folders
* Fixed bug #1623342 with patch from Daniel Jakots
- failing test on OpenBSD because tar/gtar not found
* Merged in lp:~mwilck/duplicity/duplicity
- GPG: enable truly non-interactive operation with gpg2
- This patch fixes the IMO unexpected behavior that, when using GnuPG2, a pass \
phrase dialog always pops up for
saving backups. This is particularly annoying when trying to do unattended / \
fully automatic backups.
* Fixed bug #1621194 with code from Tornhoof
- Do backup to google drive working without a service account
* Fixed bug #1642098 - does not create PAR2 archives when '--par2-options' is used
- Missing space between par2-options plus default options
* Fix bug using 40-char sign keys, from Richard McGraw on mail list
- Remove truncation of argument and adjust comments
* Merged in lp:~dernils/duplicity/robust-dropbox-backend
- Added new command line option --backend-retry-delay
that allows to determine the time that duplicity sleeps
before retrying after an error has occured.
- Added some robustness to dpbxbackend.py that ensures re-authentication
happens in case that a socket is changed (e.g. due to a forced reconnect
of a dynamic internet connection).
* Merged in lp:~ed.so/duplicity/manpage.fixes
- Fix html output via rman on the website
* Merged in lp:~horgh/duplicity/copy-symlink-targets-721599
- Add --copy-links to copy symlink contents, not just the link itself.
* Merged in lp:~aaron-whitehouse/duplicity/Bug_1624725_files_within_folder_slash
- Fixed Bug #1624725, so that an include glob ending in "/" now \
includes folder contents (for globs with
and without special characters). This preserves the behaviour that an \
expression ending in "/" only
matches a folder, but now the contents of any matching folder is included.
* Fix problem with gpg2 in yakety and zesty
* Fix Bug #1642813 with patch from Ravi
- If stat() returns None, don't attempt to set perms.
* Merged in lp:~breunigs/duplicity/amazondrive3
- As reported on the mailinglist, if a space is entered while duplicity asks \
for the URL, it fails.
Since all important spaces are URL encoded anyway, this should be fine even \
if there are spaces in
the URL at all. I also patched it in the onedrive backend, because it must \
have similar issues.
* Prep for 0.7.11
New in v0.7.10 (2016/08/20)
---------------------------
* Merged in lp:~mwilck/duplicity/0.7-series
- Speedup of path_matches_glob() by about 8x. See
https://code.launchpad.net/~mwilck/dupl … rge/301332
for more details.
* Remove -w from setsid in functional tests.
* Fixed conflict in merge from Martin Wilck and applied
- https://code.launchpad.net/~mwilck/dupl … rge/301492
- merge fixes setsid usage in functional testing.
* Fixed bug #1612472 with patch from David Cuthbert
- Restore from S3 fails with --with-prefix-archive if prefix includes '/'
* Merged in lp:~arashad.ahamad/duplicity/duplicity_latest
- Changes for connecting to IBM Bluemix ObjectStorage. See man page.
* Merged in lp:~fenisilius/duplicity/acd_init_mkdir
- Allow duplicity to create remote folder

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