Duplicity 0.8.19

Duplicity is a bandwidth-efficient backup system with built-in encryption. It produces incremental tar volumes and stores them onto local or remote servers using librsync. It utilizes GnuPG for encryption and signing.

Tags c python backup encryption rsync
License GNU GPL
State stable

Recent Releases

0.8.1930 Apr 2021 16:45 minor bugfix: ## rel.0.8.19 (2021-04-29) ### New * Merge branch 'google-drive-v3' into 'master' Kenneth Loafman Add a new Google Drive backend (gdrive:) See merge request duplicity/duplicity!41 ### Changes * Remove installs common between before _script: and script: Kenneth Loafman * Remove installs common between before _script: and script: Kenneth Loafman ### Fix * Gdata module passes on py27 only. Kenneth Loafman * Util.uexec() will return u'' if no err msg in e.args. Kenneth Loafman * Util.uexec() should check for e==None on entry. Kenneth Loafman * Fix bug #1547458 - more consistent passphrase prompt. Kenneth Loafman * Fixes bug #1454136 - SX backend issues. Kenneth Loafman * Fixes bug 1918981 - option to skip trash on delete on mediafire. Kenneth Loafman Added --mf-purge option to bypass trash * Fix bug 1919017 - MultiBackend reports failure on file deletion. Kenneth Loafman * Fixes #41 - par2+rsync (non-ssh) fails. Kenneth Loafman ### Other * Merge branch 'develop' into 'master' Kenneth Loafman Fix Google Drive timeout See merge request duplicity/duplicity!51 * Fix "Giving up after 5 attempts. timeout: The read operation timed out" Christian Perreault * Merge branch 'master' into 'master' Kenneth Loafman Don't sync when removing old backups See merge request duplicity/duplicity!50 * Don't sync when removing old backups. Matthew Marting * Merge branch 'fix-uexec-returns-None' into 'master' Kenneth Loafman fix util.uexc: do not return None See merge request duplicity/duplicity!49 * Fix util.uexc: do not return None. Michael Kopp * Merge branch 'boxbackend' into 'master' Kenneth Loafman Implement Box backend See merge request duplicity/duplicity!48 * Implement Box backend. Jason Wu * Merge branch 'megav3' into 'master' Kenneth Loafman Implement megav3 backend to to cater for change in MEGACmd See merge request duplicity/duplicity!47 * Implement megav3 backend to to cater for change in MEGACmd. Jaso
0.8.1601 Oct 2020 06:05 minor bugfix: New in v0.8.16 (2020/09/29) --------------------------- * Revert "Merge branch 's3-boto3-region-and-endpoint' into 'master'" - It broke existing setups since defaults were not supplied. * Merged in convert2md - Convert README's to markdown * Merged in s3-boto3-region-and-endpoint - after fixes. * Merged in lazy init for Boto3 network connections * Merged in OutlawPlz:paramiko-progress * Merged in s3-unfreeze-all
0.8.1529 Jul 2020 00:05 minor bugfix: New in v0.8.15 (2020/07/27) --------------------------- * Fix bug #1887689 with patch from Matthew Barry - Cleanup with Paramiko backend does not remove files due to missing filename byte decoding * Fix bug #1211481 with merge from Raffaele Di Campli - Ignores the uid/gid from the archive and keeps the current user's one. - Recommended for restoring data to mounted filesystem which do not support Unix ownership or when root privileges are not available. * Fix issue #10 - ppa:duplicity-release-git fails to install on Focal Fossa - Set correct version requirements in debian/control. * Merged in joshAppdev:pydriveshared - Backend for Shared Drives on Google - pydrive://developer.gserviceaccount.com/target-folder/?driveID= * Merged in martin-sucha:pydrive-notfound - Fix missing FileNotUploadedError in pydrive - Since dadbe2d2, FileNotUploadedError is not imported anymore, resulting in an exception in case some of the files failed to upload. Adding the import back. * Merged in hupfdule:s3-boto3-region-and-endpoint - Allow setting s3 region and endpoint - This commit introduces the new commandline options --s3-region-name, --s3-endpoint-url to specify these parameters. This allows using s3 compatible providers like Scaleway or OVH. - It is probably useful for Amazon accounts, too, to have more fine grained influence on the region to use.
0.8.1406 Jul 2020 00:05 minor bugfix: 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 - 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 P
0.8.1306 May 2020 19:05 minor bugfix: New in v0.8.13 (2020/05/05) --------------------------- * Fixed bug #1868414 - timeout parameter not passed to BlobService for Azure backend * Merged in lp: kenneth-loafman/duplicity/duplicity-pylint - Enable additional pylint warnings. Make 1st pass at correction. unused-argument, unused-wildcard-import, redefined-builtin, bad-indentation, mixed-indentation, unreachable - Renamed globals to config to fix conflict with __builtin__.globals() - Resolved conflict between duplicity.config and testing.manual.config - Normalized emacs mode line to have encoding:utf8 on all *.py files * Fixed bug #1869921 - B2 backup resume fails for TypeError * Fixed bug #1872332 - NameError in ssh_paramiko_backend.py * Fixed bug #1875529 - Support hiding instead of deletin on B2 * Fixed bug #1876778 - byte/str issues in megabackend.py * Fixed bug #1876446 - WebDAV backend creates only tiny or 0 Byte files
0.8.1220 Mar 2020 21:25 minor bugfix: New in v0.8.12 (2020/03/19) --------------------------- * Fixed bug #1865648 - module 'multiprocessing.dummy' has no attribute 'cpu_count'. - replaced with module psutil for cpu_count() only - appears Arch Linux does not support multiprocessing * Fixed a couple of file history bugs: - #1044715 Provide a file history feature + removed neutering done between series - #1526557 --file-changed does not work + fixed str/bytes issue finding filename * Fixed bug #1755955 - best order is unclear, of exclude-if-present and exclude-device-files - Removed warning and will now allow these two to be in any order. If encountered outside of the first two slots, duplicity will silently move them to be in the first two slots. Within those two slots the order does not matter. * Fixed bug #1769267 - enhancement please consider using rclone as backend. * Cleaned up some setup issues where the man pages and snapcraft.yaml were not getting versioned. * Fixed bug #1867435 - TypeError: must be str, not bytes using PCA backend * Fixed bug #1867444 - UnicodeDecodeError: 'ascii' codec can't decode byte 0x85 in position 0: ordinal not in range(128) using PCA backend * Fixed bug #1867468 - UnboundLocalError (local variable 'ch_err' referenced before assignment) in ssh_paramiko_backend.py * Fixed bug #1867529 - UnicodeDecodeError: 'ascii' codec can't decode byte 0x85 in position 0: ordinal not in range(128) with PCA * Fixed bug #1867742 - TypeError: fsdecode() takes 1 positional argument but 2 were given with PCA backend * Merged in translation updates
0.8.1126 Feb 2020 11:05 minor bugfix: New in v0.8.11 (2020/02/24) --------------------------- * Gave up fighting the fascist version control munging on snapcraft.io. Duplicity now has the form 0.8.10.1558, where the last number is the bzr revno. Can't do something nice like having a dev/fin indicator like 0.8.10dev1558 for dev versions and a fin for release or final. * Enhance setup.py/cfg to allow install by pip. * Adjust Dockerfiles to new requirements. * Fixed bug #1861287 - Removing old backup chains fails using pexpect+sftp * Reworked setup.py to build a pip-compatible distribution tarball of duplicity. * Added dist/makepip for convenience. * Renamed botobackend.py to s3_boto_backend.py * Fixed bug #1860405 - Auth mechanism not supported - Added python3-boto3 requirement to snapcraft.yaml * Fixed bug #1862672 - test_log does not respect TMPDIR - Patch supplied by Jan Tojnar. * Fixed bug #1236248 - --extra-clean clobbers old backups - Removed --extra-clean, code, and docs * Add rclone requirement to snapcraft.yaml * Fixed bug #1863018 - mediafire backend fails on py3 - Fixed handling of bytes filename in url. * Fixed bug #1857818 - startswith first arg must be bytes - use util.fsdecode on filename * Fixed to work around par2 0.8.1 core dump on short name - https://github.com/Parchive/par2cmdline/issues/145 * Merged in translation updates
0.8.1024 Jan 2020 13:25 minor bugfix: New in v0.8.10 (2020/01/23) --------------------------- * Switched to python3 for snaps. * Fixed bug #1858713 - paramiko socket.timeout - chan.recv() can return bytes or str based on the phase of the moon. Make allowances. * Removed some unneeded includes of gettext * Fixed bug #1859304 with patch from Arduous - Backup and restore do not work on SCP backend * Move to single-sourceing the package version - Rework setup.py, dist/makedist, dist/makesnap, etc., to get version from duplicity/__init__.py - Drop dist/relfiles. It was problematic. * Fixed bug #1859877 - syntax warning on python 3.8 * Skip functional/test_selection::TestUnicode if python version is less than 3.7. * Clean up some TODO tasks in testing code. * Clean up deprecation errors in Python 3.8 * Fixed bug #1858204 - ENODEV should be added to list of recognized error stringa * Fixed bug #1858207 missing targets in multibackend - Made it possible to return default value instead of taking a fatal exception on an operation by operation approach. The only use case now is for multibackend to be able to list all targets and report back on the ones that don't work. * Merged in translation updates
0.8.0909 Jan 2020 00:05 minor bugfix: New in v0.8.09 (2020/01/07) --------------------------- * Fixed bug #1855636 with patch from Filip Slunecko - Wrong buf type returned on error. Make bytes. * Fixed bug #1855736 with help from Michael Terry - Decode Popen output to utf8 * Fixed bug #1856447 with hint from Enno L - Replaced with formatted string * Fixed bug #1855736 - duplicity fails to start - Made imports absolute in dup_main.py * Fixed a mess I made. setup.py was shebanged to Py3, duplicity was shebanged to Py2. This meant that duplicity ran as Py2 but could not find its modules because they were under Py3. AArgh! * Renamed testing/infrastructure to testing/docker * Merged in lp: ed.so/duplicity/boto.fixup - fix manpage indention - clarify difference between boto backends - add boto+s3:// for future use when boto3+s3:// will become default s3 backend * Fixed bug #1857554 name 'file' is not defined - file() calls replaced by open() in 3 places. * Convert all shebangs to python3 for bug #1855736 * Fix bytes/string differences in subprocess_popen() - Now returns unicode string not bytes, like python2 * Fix bug #1857734 - TypeError in ssh_paramiko_backend - conn.recv() can return bytes or string, make string * Fix bug #1858153 with patch from az - mega backend: fails to create directory * Add snapcraft login to makesnap * Fixed bug #1858295 - Unicode error in source filename - decode arg if it comes in as bytes * Fixed bug #1855736 again - Duplicity fails to start - remove decode from unicode string * Merged in translation updates
0.8.0809 Dec 2019 09:45 minor bugfix: New in v0.8.08 (2019/12/08) --------------------------- * Fixed bug #1852848 with patch from Tomas Krizek - B2 moved the API from "b2" package into a separate "b2sdk" package. Using the old "b2" package is now deprecated. See link: https://github.com/Backblaze/B2_Command_Line_Tool/blob/master/b2/_sdk_deprecation.py - b2backend.py currently depends on both "b2" and "b2sdk", but use of "b2" is enforced and "b2sdk" isn't used at all. - The attached patch uses "b2sdk" as the primary dependency. If the new "b2sdk" module isn't available, it falls back to using the old "b2" in order to keep backward compatibility with older installations. * Added build signing to dist/makesnap. * Fixed bug #1852876 '_io.BufferedReader' object has no attribute 'uc_name' - Fixed a couple of instances where str() was used in place of util.uexc() - The file was opened with builtins, so use name, not uc_name * Fixed bug #1851668 with help from Wolfgang Rohdewald - Applied patches to handle translations. * Fixed bug #1853655 - duplicity crashes with --exclude-older-than - The exclusion setup checked for valid string only. Made the code comprehend datetime (int) as well. * Fixed bug #1853809 - Tests failing with Python 3.8 / Deprecation warnings - Fixed the deprecation warnings with patch from Sebastien Bacher - Fixed test_globmatch to handle python 3.8 same as 3.7 - Fixed tox.ini to include python 3.8 in future tests * Merged in lp: carlalex/duplicity/duplicity - Fixes bug #1840044: Migrate boto backend to boto3 - New module uses boto3+s3:// as schema. * Fixed bug #1855379 with patch from Daniel González Gasull - Issue warning on temporary connection loss. * Fixed bug #1854554 with help from Tommy Nguyen - Fixed a typo made during Python 3 conversion. * Merged in translation updates
0.8.0715 Nov 2019 11:45 minor bugfix: New in v0.8.07 (2019/11/14) --------------------------- * Added b2sdk to snapcraft.yaml * Fixed bug #1850440 with suggestion from Paolo Montrasio - TypeError: Can't mix strings and bytes in path components * Fixed bug #1850990 with suggestion from Jon Wilson - --s3-use-glacier and --no-encryption cause slow backups * Added dist/makesnap to make spaps automagically. * Fixed bug #1851167 with help from Aspen Barnes - Had Popen() to return strings not bytes * Merged in lp: mterry/duplicity/pydrive-cache-fix - The pydrive backend had another of the ongoing bytes/string issues. :) - This time, it was saving a bytes filename in its internal cache after each volume upload. Then when asked for a list of files later, it would add the byte-filenames from its cache to the results. And we'd end up thinking there were two of the same filename on the backend, which would cause a crash at the end of an otherwise successful backup, because the collections code would assert on the filenames being unique. * Merged in lp: mterry/duplicity/resume-encrypt-no-pass - This branch arose from a Debian patch that has been disabling the encryption validation of volume1 during restarts for years. - Debian has been preserving the ability to back up with just an encrypt key and no password (i.e. to have no secrets on the backup machine). * Fixed bug #1851727 - InvalidBackendURL for multi backend - Encode to utf8 only on Python2, otherwise leave as unicode * Merged in translation updates
0.8.0606 Nov 2019 20:45 minor bugfix: New in v0.8.06 (2019/11/05) --------------------------- * Removed a setting in tox.ini that causes coverage to be activated during testing duplicity. * Fixed Resouce warnings when using paramiko. It turns out that duplicity's ssh_paramiko_backend.py was not handling warning suppression and ended up clearing all warnings, including those that default to off. * Updated b2 backend to work with both v0 and v1 of b2sdk * Fixed bug #1847885 - B2 fails on string concatenation. - use util.fsdecode() to get a string not bytes. - Partially fixed in bug #1843995, this applies same fix to remaining instances of the problem * Fixed bug #1848203 with patch from Michael Apozyan - convert to integer division * Fixed bug #1626061 with patch from Michael Apozyan - While doing multipart upload to s3 we need to report the total size of uploaded data, and not the size of each part individually. So we need to keep track of all parts uploaded so far and sum it up on the fly. * Fixed bug #1848783 with patch from Jacob Middag - Don't use byte strings in regex * Fixed bug #1848166 - Swift backend fails on string concat - added util.fsdecode() where needed * Fixed bug #1849661 with patch from Graham Cobb - The problem is that b2backend uses 'quote_plus' on the destination URL without specifying the 'safe' argument as '/'. Note that 'quote' defaults 'safe' to '/', but 'quote_plus' does not! * Added additional fsdecode's to uses of local_path.name and source_path.name in b2backend's _get() and _put. See bug #1847885 for more details. * Removed a couple of disables from pylint code test. - E1103 - Maybe has no member - E0712 - Catching an exception which doesn't inherit from BaseException * Revisited bug #1848783 - par2+webdav raises TypeError on Python 3 - Fixed so bytes filenames were compared as unicode in re.match() * Removed file() call in swiftbackend. It's been deprecated since py2. * Updated snapcraft.yaml to include rdiffdir and did some reformatting. * Updated snapcraft.yaml to rem
0.8.0507 Oct 2019 13:25 minor bugfix: New in v0.8.05 (2019/10/06) --------------------------- * Changed dist/makedist to fall back to dist/relfiles.txt in case bzr or git is not available to get files list. Tox sdist needs setup.py which needs dist/makedist. * Updatated LINGUAS file to add four new translations. * Set to allow pydevd usage during tox testing. * Adjust exclusion list for rsync into duplicity_test. * Fix exc.args handling. Sometimes it's (message, int), other times its (int, message). We look for the message and use that for the exception report. * Added more python future includes to support using python3 code mixed with python2. * Sort of fix bugs #1836887 and #1836888 by skipping the tests under question when running on ppc64el machines. * Fix MacOS tempfile selection to avoid /tmp and /var/tmp. See: https://lists.nongnu.org/archive/html/duplicity-talk/2019-09/msg00000.html * Add testenv:coverage and took it out of defaults. Some cleanup. * Clean up some pylint warnings. * Fixed bug #1843995 - B2 fails on string concatenation. - use util.fsdecode() to get a string not bytes. * Fixed bug #1844750 - RsyncBackend fails if used with multi-backend. - used patch provided by KDM to fix. * Fixed bug reported on maillist - Python error in Webdav backend. See: https://lists.nongnu.org/archive/html/duplicity-talk/2019-09/msg00026.html * Fixed bug #1846167 - webdavbackend.py: expected bytes-like object, not str - base64 now returns bytes where it used to be strings, so just decode(). * Fixed bug #1844950 - ssh-pexpect backend syntax error - put the global before the import. * Fixed bug #1846678 - --exclude-device-files and -other-filesystems crashes - assuming all options had arguments was fixed. * Merged in translation updates
0.8.0401 Sep 2019 20:45 minor feature: New in v0.8.04 (2019/08/31) --------------------------- * Fixed bug #1839728 with info from Avleen Vig - b2 backend requires additional import * Fixed bug #1839886 with hint from denick - Duplicity crashes when using --file-prefix * Removed socket.settimeout from backend.py. It was already set in commandline.py. * Removed pycryptopp from README requirements * Merged in lp: aaron-whitehouse/duplicity/08-snap-python2 - Add packaging code for Snapcraft/Snap packages * Fixed build on Launchpad for 0.8.x, so now there is a new PPA at https://launchpad.net/ duplicity-team/+archive/ubuntu/daily-dev-trunk * Ran futurize selectively filter-by-filter to find the ones that work. * Merged in lp: aaron-whitehouse/duplicity/08-README-TESTING - Change README-TESTING to be correct for running individual tests now that we have moved to Tox/Pytest. * Merged in lp: kaffeekiffer/duplicity/azure-filename - Encode Azure back-end paths * Merged in lp: aaron-whitehouse/duplicity/08-docker-local-import - Convert the Docker infrastructure to pull the local branch into duplicity_test. This allows testing the local branch with the known-good Docker environment, even if it has not yet been committed to trunk. - As a consequence, remove the -r option to build-duplicity_test.sh. This functionality can be achieved by branching that revision before running the script. * Made some changes to the Docker infrastructure: - All scripts run from any directory, assuming directory structure remains the same. - Changed from Docker's COPY internal command which is slow to using external rsync which is faster and allows excludes. - Removed a couple of unused files. * Merged in translation updates
0.8.0310 Aug 2019 11:45 minor bugfix: New in v0.8.03 (2019/08/09) --------------------------- * Some changes to provide Python test coverage: - Coverage runs with every test cycle - Does not cover functional tests that spawn duplicity itself. Next pass. - After a run use 'coverage report html' to see an overview list and links to drill down. It shows up in htmlcov/index.html. * Fixed bugs #1838427 and #1838702 with a fix suggested by Stephen Miller. The fix was to supply tarfile with a unicode grpid, not bytes. * More changes to provide Python test coverage: - Now covers functional tests spawning duplicity - Does not cover bin/duplicity for some reason * More changes to provide Python test coverage: - Moved bulk of code from bin/duplicity to duplicity/dup_main.py for coverage. * Fixed some 2to3 issues in dup_main.py * Fixed division differences with futurize * Merged in translation updates
0.8.0226 Jul 2019 06:25 minor bugfix: New in v0.8.02 (2019/07/25) --------------------------- * Remove python-gettext from requirements.txt. Normal Python installation includes gettext. * Mod README to include Python 3.6 and 3.7 * Fixed bug #1836829 progress.py: old_div not defined - also fixed old_div in _boto_multi.py * Merged in lp: limburgher/duplicity/dropbox - Fixes bug #1836611 dropbox mixing bytes and strings * Merged in lp: stragerneds/duplicity/duplicity - Cache results of filename parsing for speedup * Removed python-gettext from setup.py. Whoops! * Merged in lp: mterry/duplicity/pytest-runner-move - Move pytest-runner to testing requirements in setup * Fix language classifiers in setup.py * Remove speedup in testing backup. The math was correct, but it's failing on Docker and Launchpad testing. * Fix so Docker image duplicity_test will update and pull new bzr revisions if changed since last build. * Enhanced build_duplicity_test.sh - Use -h to get help and defaults - Takes arguments for distro, revno, help - Distros supported are 18.04, 18.10, 19.04, 19.10 - Revnos are passed to bzr -r option * Merged in po-updates. * Fixed bug #1829416 with help from charlie4096 - onedrive: Can t convert bytes object to str implicitly * Fix dist/makedist to run on python3
0.8.0115 Jul 2019 07:25 minor bugfix: New in v0.8.01 (2019/07/14) --------------------------- * Merged in lp: mterry/duplicity/gio-pydrive-fsdecode - Fix gio and pydrive backends to use fsdecode * Merged in lp: mterry/duplicity/uexc-string - The return type of util.uexc should always be a string. * Fix some import conflicts with the "past" module - Rename collections.py to dup_collections.py - Remove all "from future.utils import old_div" - Replace old_div() with "//" (in py27 for a while). - All tests run for py3, unit tests run for py2. The new import fail is "from future import standard_library" * Fixed bug #1831178 sequence item 0: expected str instance, int found - Simply converted int to str when making list * Merged in lp: kaffeekiffer/duplicity/azure-python3-fix - Use util.fsencode to encode file string * Fixed bug #1833573 0.8.00 does not work on Python 2 - Fixed shebang to use /usr/bin/python instead of python * Fixed bug #1833559 0.8 test fails with 'duplicity not found' errors - Fixed assumption that duplicity/rdiffdir were in PATH * Fixed failing test in testing/unit/test_globmatch.py - Someone is messing with regex. Fix same. - See https://bugs.python.org/issue29995 for details * Normalize shebang to just python, no version number * Fix so most testing/*.py files have the future suggested lines - from __future__ import print_function from future import standard_library standard_library.install_aliases() * Merged lp: mterry/duplicity/boto-import - A couple functions in the boto backend were using the boto module without importing it first. * Merged in lp: aaron-whitehouse/duplicity/08-dockerfixes - Update duplicity_test Dockerfile: * Use 18.04 instead of 16.04 * Use Ubuntu 18.04 version of pip * Add Python3 and 2to3 as a dependencies * Set docker locale as UTF-8 * Merged in lp: mterry/duplicity/s3fsdecode - Fix s3 backups by encoding remote filenames * Fix reimport problem where "from future.builtins" was being treated the differently than "from builtins". They are both the same, so con
0.8.0030 May 2019 23:25 major bugfix: New in v0.8.00 (2019/05/29) --------------------------- * Merged in lp: aaron-whitehouse/duplicity/remove-python26 - Remove Python 2.6 support references and tests. * 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: mwilck/duplicity/duplicity - Speedup of path_matches_glob() by about 8x. See https://code.launchpad.net/ mwilck/duplicity/duplicity/+merge/301268 for more details. * Fixed conflict in merge from Martin Wilck and applied - https://code.launchpad.net/ mwilck/duplicity/0.7-series/+merge/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 * 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 * 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 * Merged in lp: havard/duplicity/jottacloudbackend - Adds support for a new backend, jottac
0.7.1930 Apr 2019 10:05 minor bugfix: 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.
0.7.18.218 Oct 2018 10:25 minor bugfix: New in v0.7.18.2 (2018/10/17) ----------------------------- * Fixed bug #1788558 again - If we get None for size skip check.
0.7.18.128 Aug 2018 03:19 minor bugfix: New in v0.7.18.1 (2018/08/27) ----------------------------- * Fixed bug #1788558 - Treat None as zero when printing log. * Revert fix for bug #1788599. - Was causing problems with directory names
0.7.1822 Aug 2018 10:45 minor bugfix: New in v0.7.18 (2018/08/21) --------------------------- * Fixed bug #1756550 Online html man page is showing a 0 byte file * Partial fix of bug #1734144 with patch from Joris van Eijden - Note: this is really just a partial fix for now, since it only covers the case where the local size does not yet match the remote size. A case where -1 is the returned length is not fixed. - Number of retries is now same as globals.num_retries. - Added standoff delay of 0.5 sec per attempt. * Fixed bug #1764432 with patch from Robke Geenen - Just join the parts together. * Fixed bug #1717935 with suggestion from strainu - Use urllib.quote_plus() to properly quote pathnames passed via URL * Fixed bug #1780617 Test fail when GnuPG = 2.2.8 - Relevant change in GnuPG 2.2.8: https://dev.gnupg.org/T3981 - Added '--ignore-mdc-error' to all gpg calls made. * Fixed bug #1785520 with patch from Chris Hunt - Fix for B2 version 1.3.4 just released * Fix a 2to3 error in ssh_paramiko_backend.py
0.7.1727 Feb 2018 12:45 minor bugfix: 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.
0.7.1613 Jan 2018 07:25 minor bugfix: 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
0.7.1514 Nov 2017 14:25 minor bugfix: 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 Tomáš Zvala - 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
0.7.1401 Sep 2017 06:05 minor bugfix: 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 file
0.7.13.119 Jun 2017 08:05 minor bugfix: 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/why-do-i-get-files-like-foo-in-my-tarball-on-os-x
0.7.1313 Jun 2017 19:25 minor bugfix: 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. - P
0.7.1222 Mar 2017 23:25 minor bugfix: 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/integration_checklist.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
0.7.1101 Jan 2017 15:45 minor bugfix: 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 spec
0.7.1022 Aug 2016 09:45 minor bugfix: 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/duplicity/0.7-series/+merge/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/duplicity/0.7-series/+merge/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
0.7.0925 Jul 2016 22:25 minor bugfix: 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
0.7.0803 Jul 2016 16:45 minor bugfix: New in v0.7.08 (2016/07/02) --------------------------- * 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/du
0.7.07.121 Apr 2016 09:05 minor bugfix: 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
0.7.0711 Apr 2016 16:45 minor bugfix: 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 forc
0.7.0608 Dec 2015 11:05 minor feature: 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/duplicity/+spec/aws-s3-std-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-new/2015/09/announcing-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
0.7.0516 Sep 2015 10:45 minor bugfix: 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 i
0.7.0403 Aug 2015 06:25 minor feature: 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/duplicity-talk/2015-02/msg00037.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/duplicity-talk/2015-05/msg00060.html and http://docs.openstack.org/developer/python-swiftclient/swiftclient.html#swiftclient.client.get_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 Kua
0.7.0312 May 2015 22:45 minor feature: 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
0.7.0215 Mar 2015 00:25 minor bugfix: Add mapping of SWIFT_REGIONNAME to select region inside SWIFT when a provider proposes more than one region. Azure Backend examples had invalid underscores in the container names. Fixed deprecated gdocs API usage. Fixed some tabs/spaces problems that were causing install failures. Fixed variable typo in commandline.py that was causing build fails. Aligned commandline.py options and help display contents. Changed --s3_multipart_max_timeout to --s3-multipart-max-timeout to be consistent with commandline option naming conventions. Add "--exclude-older-than" commandline option, that allows you to only back up files with a modification date newer than a particular threshold. Misc fixes for a few PEP8 issues. Fixes for 2to3 issues. 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.