New in v0.6.13 (2011/04/02) ---------------------------- Bugs closed in this release: 579958 Assertion error "time not moving forward at appropriate pace" 613244 silent data corruption with checkpoint/restore 731905 File "/usr/bin/duplicity", error after upgrade from 6.11 to 6.12 Enhancements added this release: New manual test to make Ctrl-C issues easier to replicate. Use python-virtualenv to make testing multiple Python versions easier. In boto backend check for existing bucket before trying to create. New in v0.6.12 (2011/03/08) ---------------------------- Bugs closed in this release: 486489 Only full backups done on webdav 578663 Use log codes for common backend errors 581054 Inverted "Current directory" "Previous directory" in error message 620163 OSError: [Errno 2] No such file or directory 629136 sslerror: The read operation timed out with cf 629984 boto backend uses Python 2.5 conditional 655797 symbolic link ownership not preserved 670891 Cygwin: TypeError: basis_file must be a (true) file ... 681980 Duplicity 0.6.11 aborts if RSYNC_RSH not set 700390 Backup fails silently when target is full (sftp, verbosity=4) 704314 Exception in log module Enhancements added this release: 626915 ftps support using lftp (ftpsbackend) Merges: lp:~mterry/duplicity/backend-log-codes3 lp:~blueyed/duplicity/path-enodev-bugfix New in v0.6.11 (2010/11/20) ---------------------------- Bugs closed in this release: 433970 Add an option to connect to S3 with regular HTTP (and not HTTPS) 578663 Use log codes for common backend errors 631275 missing ssh on rsyncd url - rsync: Failed to exec ssh: ... 635494 backed up to S3, wiped drive, reinstalled, unable to restore backup 637556 os.execve should get passed program as first argument 669225 sftp: "Couldn't delete file: Failure'" only logged on level 9 655468 0.6.10 does not work with S3 674506 RsyncBackend instance has no attribute 'subprocess_popen_persist' Merges: lp:~blueyed/duplicity/bug-669225 lp:~duplicity-team/duplicity/po-updates lp:~ed.so/duplicity/0.6.10-backend_fixes lp:~ed.so/duplicity/RSYNC_RSH-fix lp:~ed.so/duplicity/sign_symmetric2 lp:~ed.so/duplicity/survive_spaces lp:~l2g/duplicity/use-py.test lp:~mbp/duplicity/433970-non-ssl New in v0.6.10 (2010/09/19) ---------------------------- Bugs closed in this release: 542482 Offer command to remove old incremental backups from target 578663 Use log codes for common backend errors 589495 duplicity --short-filenames crashes with TypeError 612714 NameError: global name 'parsed_url' is not defined 613448 ftpbackend fails if target directory doesn't exist 615449 Command-line verbosity parsing crash New in v0.6.09 (2010/07/25) ---------------------------- Bugs closed in this release: 502609 Unknown error while uploading duplicity-full-signatures 539393 Duplicity returns 1 when continuing an interrupted backup 550455 duplicity doesn't handle with large files well 567738 --ssh-options options passing options to ssh do not work 576564 username not url decoded in backend (at least rsync) 579958 Assertion error "time not moving forward at appropriate pace" 582962 Diminishing performance on large files Upgraded tahoebackend to new parse_url. Fix to warning message in sshbackend. New in v0.6.08b (2010/03/11) ---------------------------- Fix bug where encrypted backup without --gpg-options crashes. This was a followup issue to bug 490619 released in 0.6.07. This is attempt #2 -- not sure what happened to the patch, but it did not show up in 0.6-series like it should have. New in v0.6.08a (2010/03/11) ---------------------------- Fix bug where encrypted backup without --gpg-options crashes. This was a followup issue to bug 490619 released in 0.6.07. New in v0.6.08 (2010/03/07) --------------------------- Bugs closed in this release: 519110 Need accurate man page info on use of scp/sftp usage. 532051 rdiffdir attempts to reference undefined variables with some command arguments 529869 TypeError: unsupported operand type(s) for -: 'NoneType' and 'int' 530910 TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' New in v0.6.07 (2010/02/28) --------------------------- Bugs closed in this release: 459511 --tempdir option doesn't override TMPDIR 467391 [PATCH] WebDAV backend doesn't work 487686 re-add scp backend and make available via command line option 490619 Use optparse not getopt 497243 0.6.06, archive dir: cache desynchronization caused by remove* 501093 SSHBackend doesn't handle spaces in path 505739 "sslerror: The read operation timed out" with S3 520470 Don't Warn when there's old backup to delete 522544 OSError: [Errno 40] Too many levels of symbolic links 388673 Allow renaming paths as they are restored New in v0.6.06 (2009/10/29) --------------------------- Merged in lp:~mterry/duplicity/list-old-chains List/keep old signature chains Applied patches from Kasper Brand that fixed device file handling. http://lists.gnu.org/archive/html/duplicity-talk/2009-09/msg00001.html Merged in lp:~l2g/duplicity/flag-transl-comments which cleared up how translation comments should be passed to the translators cleanly now. Applied 422477; [PATCH] IMAP Backend Error in delete() Merged in lp:~mterry/duplicity/iterate-warnings Add machine codes to various warnings when iterating over source files Fix problems with unittests under Jaunty. It appears that redirection in os.system() has changed for the worse, so a workaround for now. Fix problem in restart where there were no manifest entries and no remote volumes stored. We clean out the partial and restart. Fixed 435975 gpg asks for password in 0.6.05, but not in 0.5.18 New in v0.6.05 (2009/08/28) --------------------------- Merged in lp:~l2g/duplicity/test-compat from Larry Gilbert which made the testing compatible across more systems. Also fixed the remaining collectionstest bug which was trying to test with no cache present. Bugs fixed this release: 407968 GIO backend can't restore 408059 Failure due to _logger.log failure for content with special characters: TypeError decoding Unicode not supported 409593 deja-dup (or duplicity) deletes all signatures 412667 "duplicity remove-older-than" asks for passphrase even though not required 418170 [PATCH] file names longer then 512 symbols are not supported New in v0.6.04 (2009/08/01) --------------------------- One major and one minor change. The "No such file or directory" error is bad enough that this should be released quickly. For those of you using encryption, this is not a problem, but for those of you that do not use encryption (--no-encryption), then this will manifest itself if the local cache gets out of sync with the remote store. Bugs fixed this release: 405734 duplicity fails to restore files that contain a newline character 403790 Backup error: No such file or directory New in v0.6.03 (2009/07/29) --------------------------- Lots of small changes and some bug fixes. * Restart error handling has been smoothed out a great deal and it "does what is right" in order to keep going. * Backends are now optional, if they fail an Info message is put out to notify of the failure and why. * There was more work on translations and internationalization. Thanks to everyone! Bugs fixed this release: 377528 --file-to-restore doesn't work with trailing slash 394757 Backend imports should be made optional 398230 Deja-dup backup fails with message: "Unable to locate last file" 401303 0.6.2 manpage inconsistent wrt. archive-dir/name 405646 Small i18n error 405975 duplicity.gpg.gpg_failed() breaks and spews on GnuPG error 402794 duplicity public-key-only incompatible with gnupg 2.0.11 New in v0.6.02 (2009/07/07) --------------------------- Duplicity will now remove any spurious files left in the cache from a previous run. This will keep the metadata cache in sync with the remote storage metadata. Bugs fixed this release: 394629 Hang on first collection-status 379386 Fix 'list-current-files' with missing archive dir 395826 "No such file or directory" when backing up second time 394627 User-friendly archive dir print 388699 Manifest mismatch error New in v0.6.01 (2009/07/01) --------------------------- Fixed issues in Checkpoint/Restart: * The --name backupname" option was added to allow the user to separate one archive from another. If not specified, the default is an MD5 hash of the target URL, which should suffice for most uses. * The archive_dir (cache) is now stored in a standard location, defaulting to ~/.cache/duplicity. See http://standards.freedesktop.org/basedir-spec/latest/ * The interaction between the --archive-dir option and the --name option allows for four possible results for the location of the archive dir. - neither specified (default) ~/.cache/duplicity/hash-of-url - --archive-dir=~/arch, no --name ~/arch/hash-of-url - no --archive-dir, --name=foo ~/.cache/duplicity/foo - --archive-dir=~/arch, --name=foo ~/arch/foo * duplicity will now copy needed metadata from the remote store to the local cache as needed. This means that the first use after upgraded from 0.5.x will have the metadata copied to the local archive dir in order to sync both. * cleanup will now work correctly with the archive dir and separates the local from the remote files. Bugs fixed this release: * 388034 Unable to backup * 378940 python2-6 issue / UTF-8 charset / Ubuntu 9.04 * 379386 Fix list-current-files w/ missing archive dir * 387102 Asynchronous upload not working properly * 387218 Make scp/ssh into sftp-only backend * 388992 List of Orphaned Files Growing * 392905 NoneType object has no attribute 'startswith' * 393372 Error creating directory * 383412 Add InfoCodes for upload events * 383419 Add gio backend New in v0.6.00 (2009/06/08) --------------------------- Checkpoint/Restart capability added. Checkpoint is done at every volume written and Restart is done at start of the next volume in the set. Changes to normal operations include a permanent duplicity archive-dir at ~/.duplicity to save state. To accomplish this, the signature and archive files in the archive-dir now have three states: 1) temporary until the first volume has been written, 2) partial until the final volume has been written and sent to remote storage, 3) permanent with the same name as always. Assumptions are made that if a restart is needed, then all arguments are the same as before and that no files have been removed from the file system between runs. From now on, the --archive-dir option can be used to change the location of the archive dir, but you are responsible for moving the files if you change it. Other fixes: Unicode filenames in log messages are now OK. Fixed problem where Cygwin was returning -1 for the hard max open file limit. New in v0.5.18 (2009/05/20) --------------------------- Added support for RackSpace's CloudFiles, cf+http. Added support for Tahoe-LAFS from the patch, patch #6743: Tahoe backend for duplicity https://savannah.nongnu.org/patch/?6743 Only half of this bug is fixed but it's still useful. bug #21792: pipe call fails with an error OSError: [Errno 24] Too many open files https://savannah.nongnu.org/bugs/?21792 Changed from using ulimit external command to resource.getrlimit to check open files limit. New in v0.5.17 (2009/05/04) --------------------------- Removed one line of code left from some testing that I did that caused a crash when the target dir was empty and collection-status was requested. Moved from using the df command to get temp space availability to Python's os.statvfs() call. Not all df commands work the same way. patch #6813: Making changelist easy to read https://savannah.nongnu.org/patch/?6813 patch #6814: Ignore comments in filelists https://savannah.nongnu.org/patch/?6814 New in v0.5.16 (2009/04/21) --------------------------- bug #24825: duplicity warn on insufficient TMPDIR space availability and low max open file limits pre-backup. https://savannah.nongnu.org/bugs/?24825 bug #25594: wrong backup statistics https://savannah.nongnu.org/bugs/?25594 bug #25976: Password requested when not needed. https://savannah.nongnu.org/bugs/?25976 patch #6806: More graceful handling of old --short-filename files https://savannah.nongnu.org/patch/?6806 Added tilde and variable expansion to the source or target argument that is not a URL. New in v0.5.15 (2009/04/09) --------------------------- FTP backend was failing on PureFTPd when the "-x ''" option was removed from the second ncftpls popen, a fix that was implemented due to bug #24741. This fix does the ls in one pass by extracting the last entry on the 'ls -l' listing. If a file is unreadable due to access rights or other non-fatal errors, put out error message and continue rather than dying messily with a traceback. Added tilde '~' expansion and variable expansion in the options that require a filename. You can now have this "--archive-dir=~/ArchDir/$SYSNAME" if you need it. No expansion is applied to the source or target URL's. Fixed problem I caused, again, where sys.exit() was trapping instead of exiting. Added big note to not to do that again. New in v0.5.14 (2009/04/02) --------------------------- After email voting among known duplicity contributors, the decision was reached to revert to the GPL Version 2 license, so with their consensus, duplicity is now under GPL Version 2. Revert to calling NcFTP utilities (ls, get, put) directly rather than scripting ncftp via pexpect by reverting to the 0.5.07 version of ftpbackend.py. Changed fatal error regarding version 3.2.0 of ncftpput to warning level since it has been reported that the problem does not occur on most distributions. Changed from log.Log with numbered log levels to log.Debug, log.Info, log.Notice, log.Warn, log.FatalError as below: 0 log.FatalError 1-2 log.Warn 3-4 log.Notice 5-8 log.Info 9 log.Debug The -vN option has not changed. Verbosity may also be one of: character [ewnid], or word ['error', 'warning', 'notice', 'info', 'debug']. The default is 4 (Notice). The options -v4, -vn, and -vnotice are functionally equivalent, as are the mixed-case versions, -vN, -vNotice, -vNOTICE. Normalized include statements and tried to insure that all duplicity includes were from the duplicity module. patch #6790: Add --exclude-if-present https://savannah.nongnu.org/patch/?6790 New in v0.5.13 (2009/03/26) --------------------------- Add more error detection to FTP backend. Fix backends so sleep does not occur after last retry. Fix so BackendException does not cause traceback except when verbosity is at level 5 or higher (Info level). Adjust log levels so some errors show up with default verbosity. Fixed bug where an extra comma caused a traceback during a warning about unnecessary sig files. Plus fixed print so the real filename would show up and not a Python object representation. Add Changelog.GNU to website and distribution to add a bit of detail showing the CVS changes via rcs2log. Added dist/mkGNUChangelog.sh. bug #22908: Don't block gpg-agent https://savannah.nongnu.org/bugs/?22908 To fix the above, --use-agent was added as a command line option. When this is specified and asymetric encryption is enabled, then all GnuPG passphrases will come from the gpg-agent or equivalent program and no passphrase prompt will be issued. bug #25787: Usernames with escaped @-sign are not handled properly https://savannah.nongnu.org/bugs/?25787 bug #25976: Password requested when not needed. https://savannah.nongnu.org/bugs/?25976 patch #6787: import duplicity.GnuPGInterface explicitly https://savannah.nongnu.org/patch/?6787 New in v0.5.12 (2009/03/15) --------------------------- bug #25838: Backup fails / ncftp - remote file already exists https://savannah.nongnu.org/bugs/?25838 With this fix we also get resume in ftp get/put. If a put or get fails part of the way through, ncftp will resume on the next retry. bug #25853: duplicity fails with boto passwords coming from ~/.boto https://savannah.nongnu.org/bugs/?25853 patch #6773: Make user name optional in rsync backend https://savannah.nongnu.org/patch/?6773 GPG errors will no longer cause tracebacks, but will produce a log entry, from gpg, similar to the following: ===== Begin GnuPG log ===== gpg: BAD0BAD0: skipped: public key not found gpg: [stdin]: encryption failed: public key not found ===== End GnuPG log ===== This will let the user know what really caused the GPG process to fail, and what really caused errors like 'broken pipe'. Add Epydoc output to web site and start adding documentation. http://duplicity.nongnu.org/epydoc/index.html New in v0.5.11 (2009/03/08) --------------------------- bug #25787: Usernames with @-sign are not handled properly https://savannah.nongnu.org/bugs/?25787 Bug #333057: GnuPGInterface prints exit statuses incorrectly https://bugs.launchpad.net/bugs/333057 bug #25696: ncftp error w/0.5.09 -- nested target directories https://savannah.nongnu.org/bugs/?25696 bug #15664: When restoring backup: "OverflowError: long int too large to convert to int" https://savannah.nongnu.org/bugs/?15664 patch #6761: More robust pexpect handling of SSH authentication https://savannah.nongnu.org/patch/?6761 patch #6762: Wrong exit() used for 2.3/2.4 Python https://savannah.nongnu.org/patch/?6762 New in v0.5.10 (2009/03/01) --------------------------- The default filename format has changed from W3 style to a long numeric style, YYYYMMDDTHHMMSSZ, with no delimiters, thus is now compatible with Windows/Samba filesystems. The time is UTC, not local, so there will be no timezone or daylight savings time issues. Duplicity still recognizes the old long filename format, and will continue incremental backup chains if found. The old format is still available via the --old-filenames option (pending deprecation). Users of --short-filenames or --time-separator should stop using these options on their next full backup. The new filenames are compatible with your system. The following options are pending deprecation and will be removed in a future release: --time-separator --short-filenames --old-filenames bug #19988: Incompatibility to Samba/SMB share https://savannah.nongnu.org/bugs/?19988 bug #25097: Allow listing files from any time, not just current time https://savannah.nongnu.org/bugs/?25097 bug #25550: Error codes do not propagate from log to exit status https://savannah.nongnu.org/bugs/?25550 bug #25308: Signatures orphaned if from another time zone https://savannah.nongnu.org/bugs/?25308 Bug #229826: duplicity crashed with ValueError in port() https://bugs.launchpad.net/duplicity/+bug/229826 New in v0.5.09 (2009/02/17) --------------------------- FTP is now driven with pexpect rather than NcFTP utilities. This closes the following bugs (and solves other problems): bug #24741: ncftpls -x '' causes failure on Yahoo FTP server bug #23516: duplicity/ncftpget not closing unlinked files, ... bug #25509: Logic error in imapbackend.py [IMAP_SERVER] https://savannah.nongnu.org/bugs/?25509 bug #25512: [Patch] Retry on Imap failure https://savannah.nongnu.org/bugs/?25512 bug #25530: commandline passwd not working https://savannah.nongnu.org/bugs/?25530 New in v0.5.08 (2009/02/02) --------------------------- Turns out going backwards in the license is not as easy as forwards. Restoring GPLv3 license until consensus reached. New in v0.5.07 (2009/01/31) --------------------------- bug #25293: IOError: [Errno 22] Invalid argument https://savannah.nongnu.org/bugs/?25293 bug #25379: sys.exit() causes traceback and should not https://savannah.nongnu.org/bugs/?25379 bug #25403: 0.5.06 "manifests not equal, different volume numbers" https://savannah.nongnu.org/bugs/?25403 patch #6729: New imap backend. Replaces current gmail backend https://savannah.nongnu.org/patch/?6729 patch #6730: Fix timing out for SSH backend https://savannah.nongnu.org/patch/?6730 patch #6733: Improve error handling in imapbackend.py https://savannah.nongnu.org/patch/?6733 Increase default volume size (--volsize) to 25M from 5M. This reduces the number of volumes to accomodate larger backups. Reworked patch 6701 to list collection one at a time rather than writing all as one huge list. Was causing memeory problems when the collections got large. Fix backendtest.py so that empty URL's in config.py cause the backend test to be skipped rather than erroring. Added notes in config.py.tmpl explaining the change. Add/update copyright statements in all distribution source files and revert duplicity to GPL version 2 license. Original fix to disallow use of ncftpput 3.2.0 mistyped the ErrorCode used and resulted in an error rather than an explanation. New in v0.5.06 (2009/01/09) --------------------------- Fix to deprecation warnings about sha and md5 modules. Uses hashlib if available, otherwise original module. Added loop to run-all-tests.sh to run all tests against all supported versions of Python if available. Looks for 2.3, 2.4, 2.5, 2.6. Noah Spurrier has given us permission to distribute pexpect.py along with duplicity, so this will no longer be an install requirement. NcFTP version 3.2.0 will not work with duplicity since we require the use of both -f and -C options on ncftpput. 3.1.9, 3.2.1+ work fine. I put in error checks for this situation in the FTP backend code. bug #25230: --include-globbing-filelist only including first entry. https://savannah.nongnu.org/bugs/?25230 bug #25239: Error during clean, wrong case in duplcicity https://savannah.nongnu.org/bugs/?25239 patch #6709: Report correct number of volumes when restoring https://savannah.nongnu.org/patch/?6709 sr #106583: document the need to use the --force option https://savannah.nongnu.org/support/?106583 New in v0.5.05 (2008/12/30) --------------------------- bug #25194: Duplicity 5.04 requires python-distutils-extra... https://savannah.nongnu.org/bugs/?25194 New in v0.5.04 (2008/12/27) --------------------------- patch #6678: Add progress metering https://savannah.nongnu.org/patch/?6678 patch #6686: Add error codes for all fatal errors https://savannah.nongnu.org/patch/?6686 bug #25090: Typos and trailing whitespace in duplicity manpage https://savannah.nongnu.org/bugs/?25090 bug #24889: NCFTP cannot deal with some FTP servers https://savannah.nongnu.org/bugs/?24889 patch #6692: Print collection status in a machine-readable way https://savannah.nongnu.org/patch/?6692 patch #6693: Some FatalError's don't have codes still https://savannah.nongnu.org/patch/?6693 patch #6694: Log exceptions https://savannah.nongnu.org/patch/?6694 patch #6695: Log filenames https://savannah.nongnu.org/patch/?6695 patch #6696: Consolidate get_delta_iter and get_delta_iter_w_sig https://savannah.nongnu.org/patch/?6696 patch #6697: Always log at least one progress during dry run https://savannah.nongnu.org/patch/?6697 patch #6700: Make duplicity translatable https://savannah.nongnu.org/patch/?6700 patch #6701: Make current-list command machine-readable https://savannah.nongnu.org/patch/?6701 patch #6702: handle unknown errnos in robust.py https://savannah.nongnu.org/patch/?6702 GPG was throwing "gpg: [don't know]: invalid packet (ctb=14)" and apparently this is non-fatal. There is a fix for this being rolled into GPG 2.x. http://lists.gnupg.org/pipermail/gnupg-devel/2006-September/023180.html Copied from collections.py. Fix supplied by Simon Blandford <simon@onepointltd.com> New in v0.5.03 (2008/11/17) --------------------------- bug #24731: Documentation error: "if... if" in remove-older-than paragraph https://savannah.nongnu.org/bugs/?24731 bug #24775: Digest Auth for WebDAV backend https://savannah.nongnu.org/bugs/?24775 patch #6676: Raw delta stats aren't right for multivolumes https://savannah.nongnu.org/patch/?6676 patch #6675: Add modelines https://savannah.nongnu.org/patch/?6675 patch #6674: Add --log-* options to man page https://savannah.nongnu.org/patch/?6674 patch #6673: Add --dry-run option https://savannah.nongnu.org/patch/?6673 patch #6672: makedist doesn't ship util.py https://savannah.nongnu.org/patch/?6672 patch #6670: Machine Readable Output https://savannah.nongnu.org/patch/?6670 patch #6662: improve s3 backend error reporting https://savannah.nongnu.org/patch/?6662 patch #6652: improve asynch scheduler (including the synchronous case) https://savannah.nongnu.org/patch/?6652 patch #6642: make ParsedUrl() thread-safe with respect to itself https://savannah.nongnu.org/patch/?6642 patch #6638: correct typo in reporting lack of sufficiently new boto backend https://savannah.nongnu.org/patch/?6638 sr #106496: put install-from-cvs-notes in CVS-README https://savannah.nongnu.org/support/?106496 sr #106534: GMail backups aren't stored in the correct location https://savannah.nongnu.org/support/?106534 New in v0.5.02 (2008/09/21) --------------------------- - Add -h option for help - Change gpg logging so that logs are always collected. The log is printed in the case of gpg IO errors. Also, verbosity level 5 or above (-v5) will print the logs. patch #6297: Add IMAP/s/gmail support https://savannah.nongnu.org/patch/?6297 bug #24260: backend.py missing re import https://savannah.nongnu.org/bugs/?24260 bug #24274: asyncscheduler.py missing sys import https://savannah.nongnu.org/bugs/?24274 New in v0.5.01 (2008/09/11) --------------------------- bug #24234: Tabs Present In Source Files https://savannah.nongnu.org/bugs/?24234 bug #24223: WebDAV backend broken in 0.5.00 https://savannah.nongnu.org/bugs/?24223 bug #24226: WebDAV Does Not Create Collection If Needed https://savannah.nongnu.org/bugs/?24226 New in v0.5.00 (2008/09/06) --------------------------- Changes to unit tests: - resolve circular imports after backend reorg - resolve exception error import - now in errors.py - remove need for temp2.tar to be in CVS repository bug #23988: scp destination fails if no username is specified https://savannah.nongnu.org/bugs/?23988 bug #23985: --no-encryption option does not work in 0.4.12 https://savannah.nongnu.org/bugs/?23985 patch #6623: slightly augment tempdir cleanup logging https://savannah.nongnu.org/patch/?6623 patch #6596: re-organize backend module structure https://savannah.nongnu.org/patch/?6596 patch #6589: S3 european bucket support https://savannah.nongnu.org/patch/?6589 patch #6353: Concurrency for volume encryption and upload. https://savannah.nongnu.org/patch/?6353 New in v0.4.12 (2008/07/22) --------------------------- Dan Muresan created a patch to minimize the number of password prompts. To do so, it sometimes requests a password once without confirmation; if later it turns out that a full backup is needed, the user is prompted for confirmation. bug #23540: doc bug in man page (environment FTP_PASSWORD) https://savannah.nongnu.org/bugs/?23540 bug #23362: Documentation for --version, --time-separator <char> https://savannah.nongnu.org/bugs/?23362 bug #23283: interactive passphrase query is suboptimal https://savannah.nongnu.org/bugs/?23283 bug #23066 was not actually applied to 0.4.11. Its here now. https://savannah.nongnu.org/bugs/?23066 bug #22826: regressions caused by boto 1.1c https://savannah.nongnu.org/bugs/?22826 New in v0.4.11 (2008/05/05) --------------------------- Changes applied to allow duplicity to run under Python 2.3 again. patch #6485: Reinstate patch #6340 with a detailed explanation. https://savannah.nongnu.org/patch/?6485 bug #23066: ssh uris with given portnumbers are not handled correctly https://savannah.nongnu.org/bugs/?23066 New in v0.4.10 (2008/03/27) --------------------------- bug #22728: FTP backend fails on empty directory https://savannah.nongnu.org/bugs/?22728 patch #6374: Duplicity --tempdir patch documentation. https://savannah.nongnu.org/patch/?6374 patch #6375: Duplicity reports the epoch for a nonexistant last full backup date https://savannah.nongnu.org/patch/?6375 patch #6380: add additional named logging levels https://savannah.nongnu.org/patch/?6380 patch #6389: Possible Fix for pagefile.sys on Win32 systems https://savannah.nongnu.org/patch/?6389 patch #6403: Restore by overwriting files/directories by using --force option https://savannah.nongnu.org/patch/?6403 patch #6449: add additional debug level logging https://savannah.nongnu.org/patch/?6449 patch #6453: handle absolute urls in webdav backend https://savannah.nongnu.org/patch/?6453 Fix problem where S3 prefix was prepended with 'd'. This caused a failure in the regression tests. New in v0.4.9 (2008/01/04) -------------------------- NOTE: URL format correction in rsync://. The rsync backend now properly supports absolute and relative pathnames and module access. The formats are: rsync://user@host::/module/some_dir rsync://user@host/relative_path rsync://user@host//absolute_path Fixed regression caused by changeover to new urlparse.py. bug #21475: FTP Usernames that contain '@' are not recognized https://savannah.nongnu.org/bugs/?21475 Added section URL FORMAT in the duplicity man page. Added 2nd patch to bug #21475 that forces all versions of Python to use the fixed urlparse.py. Fixed so that remove-older-than and remove-all-but-n-full will not request a GPG passphrase. Fixed issue with Pure-FTPd that would always return an empty directory listing and thus force a full backup every time. A side effect of the change is that we now only make one call to ncftpls to get the listing, thereby reducing the overhead on systems with a large number of backup files. bug #21896: Two problems with rsync under 0.4.8 + patch https://savannah.nongnu.org/bugs/?21896 bug #21909: Problematic typo in compare_verbose() method https://savannah.nongnu.org/bugs/?21909 patch #6354: S3 staight typo results in a bogus exception https://savannah.nongnu.org/patch/?6354 patch #6356: Command line option for the temporary directory root. https://savannah.nongnu.org/patch/?6356 patch #6357: Explicit restore action is missing from the command list, https://savannah.nongnu.org/patch/?6357 New in v0.4.8 (2007/12/15) -------------------------- First pass at bringing unittest cases up to date. All unit tests are working, but more test cases need to be added to handle the new protocols, plus there is some print leakage even with logging turned off. Allow pexpect to force the close of the child on sftp calls. We already do that with scp calls. This cleans up that exception. bug #21751: rsync module urls do not work in 0.4.7 https://savannah.nongnu.org/bugs/?21751 bug #21752: Boto backend needs version 0.9d or later https://savannah.nongnu.org/bugs/?21752 patch #6340: S3 short filename regression https://savannah.nongnu.org/patch/?6340 patch #6344: S3 bad bad key key handling http://savannah.nongnu.org/patch/?6344 New in v0.4.7 (2007/12/07) -------------------------- Applied patch from Eric Hanchrow to fix logging error in botoBackend, and fix delete() in rsyncBackend. bug #21673: remove-all-but-n-full wrong arg usage https://savannah.nongnu.org/bugs/?21673 bug #21686: NcFTPGet 3.2.0 tempfile incompatibility https://savannah.nongnu.org/bugs/?21686 patch #6292: Amazon S3 bucket creation deferral https://savannah.nongnu.org/patch/?6292 patch #6293: left-over patch from remove-all-but-n-full https://savannah.nongnu.org/patch/?6293 patch #6296: Generic S3 url support for Duplicity 0.4.6 https://savannah.nongnu.org/patch/?6296 patch #6298: URI unquoting patch for FTP backend https://savannah.nongnu.org/patch/?6298 patch #6299: re-design tempfile handling https://savannah.nongnu.org/patch/?6299 patch #6300: Standard library replacement for ParsedUrl class https://savannah.nongnu.org/patch/?6300 patch #6301: log sftp commands at verbosity 5 https://savannah.nongnu.org/patch/?6301 New in v0.4.6 (2007/11/28) -------------------------- https://savannah.nongnu.org/bugs/?21508 bug #21508: Change delete implementation of ftpBackend to only send one "DELE" instead of multiple per delete. https://savannah.nongnu.org/bugs/?21646 bug #21646: --archive-dir causes delete of remote full sigs and orphaned sig files https://savannah.nongnu.org/bugs/?21651 bug #21651, add https support for webdav. https://savannah.nongnu.org/bugs/?21657 bug #21657: ncftpls fails to create dir in ver 0.4.5 https://savannah.nongnu.org/patch/?6284 patch #6284: document TMPDIR and friends https://savannah.nongnu.org/patch/?6284 patch #6285: security fix: eliminate use of mktemp() https://savannah.nongnu.org/patch/?6289 patch #6289: Amazon S3 key prefix patch for Duplicity 0.4.5 https://savannah.nongnu.org/patch/?6291 patch #6291: Alternative WebDAV HTTPS patch New in v0.4.5 (2007/11/26) -------------------------- https://savannah.nongnu.org/bugs/?21646 Fix to handling of collections when --archive-dir is used. Prior to this, duplicity would write the full sig files to both local and remote, then delete the remote. Now, it does not delete the remote full sigs. Applied the following patches from Peter Schuller patch #6279, add command 'remove-all-but-n-full' patch #6280, clarify --archive-dir option patch #6281, --help should print to stdout, not stderr patch #6282, collection-status: output in more consistent order New in v0.4.4 (2007/11/23) ------------------------------ All the changes in RC1 through RC4 plus: Changes to ftpBackend to use a temp login config file rather than putting the username and password on the command line. This requires the use of NcFTP 3.1.9 or later. Thanks to a patch from Greg Hewgill the Amazon S3 backend now uses --num-retries to retry IO repeatedly if needed. Changes to commandline processing to allow non-ambiguous short strings for commands, i.e. 'i', 'inc', 'incr' for 'incremental', 'f' for 'full', etc.. A warning message is printed if the short command is not unique. Note: this already works for options, so I just applied the same idea to commands. Applied a patch from Gregory Hartman to correct handling of DST in time calculations. This affects backups made the night of a DST time switch. New in v0.4.4.RC4 (2007/10/26) ------------------------------ WARNING: COMMAND LINE CHANGES ARE NOT BACKWARDS COMPATIBLE! There is a new command line syntax to separate actions and options. Refer to the new man page for full details of the change. The new syntax looks like: duplicity [full|incr] [options] source_dir target_url duplicity [restore] [options] source_url target_dir duplicity verify [options] source_url target_dir duplicity collection-status [options] target_url duplicity list-current-files [options] target_url duplicity cleanup [options] target_url duplicity remove-older-than time [options] target_url Fixed issue in --time-separator where the current time string was being set prior to setting the separator, causing errors when trying to set the --time-separator for Windows systems. Fix so that file mtime is always compared in full seconds. Fix so that ftpBackend.delete() does not print file list. New in v0.4.4.RC3 (2007/10/02) ------------------------------ Patch from Olivier Croquette to add --full-if-older-than=<time> option to force a full backup at <time> rather than incremental. Patch from Stefan Hoth to add :port option in FTP. Patch from Mitchell Garnaat to get all keys from S3, rather than just the first 1000. Fix to sshBackend to version check for python-pexpect 2.1. Fix one case in ftpBackend where host string was used instead of url_string. This only affected the creation of the target dir on the remote system, if it did not exist, and only if the user or port needed to be specified. New in v0.4.4.RC2 (2007/09/26) ------------------------------ Added --timeout <seconds> (default 30) to allow users to change duplicity's network timeout settings. Added --time-separator <char> to allow users to change the time separator from ':' to another character that will work on their system. HINT: For Windows SMB shares, use --time-separator='_'. NOTE: '-' is not valid as it conflicts with date separator. Add patch from Alexander Zangerl to suppress the GPG passphrase prompt when a passphrase is not needed. - full and pubkey enc: doesn't depend on old encrypted info - inc and pubkey enc and archive-dir: need manifest and sigs, which the archive dir contains unencrypted - with encryption disabled - listing files: needs manifest, but the archive dir has that - collection status: only looks at a repository Add patch from Olivier Croquette to allow user@domain usernames, making ftp://user@domain@domain.com/path a valid URL. Added a bit of debug print to sshBackend for --verbosity=9. Changed usage message to separate options and commands. New in v0.4.4.RC1 (2007/09/19) ------------------------------ Patches applied from Debian DP: fix #228388: old/aborted/offending sig files prohibit further action DP: fixes manual page and usage msg for rsync url and --remove-older-than DP: make tempfiles with useful names DP: do not ask for a passphrase if none is required! https://savannah.nongnu.org/bugs/?21123 duplicity 0.4.3 ftpBackend did not find backup sets when there was more than 20 files in directory. https://savannah.nongnu.org/patch/?6212 Large performance boost for large volume sizes. https://savannah.nongnu.org/patch/?6211 Restore strict host checking in sshBackend. https://savannah.nongnu.org/patch/?6205 Add option --librsync-dir for when its not found. New in v0.4.3 (2007/08/20) -------------------------- All the changes in RC1 through RC12 plus: Move get_password() to Backend class to standardize. Fix problem with ftpBackend to create target directory if needed. Note: this creates only one level. Dropped ssh-command and added ssh-options to allow users to add options to the scp and sftp commmands. Removed use of tempfile.TemporaryFile(). This fixes the restore problem on Windows that was due to Python bug 1776696 reported on Sourceforge. Fixed Debian Bug#437694: Make bzip2 compression optional. The default is not to do bzip2 compression. To use bzip2 add the following command line option: --gpg-options='--compress-algo=bzip2 --bzip2-compress-level=9' Note: do not add spaces in the string value. Fixed bug 20764 - unable to use port in ssh backend. https://savannah.nongnu.org/bugs/?20764 Remove ssh_command option, add ssh_options. This adds options to the scp and sftp commands that are used by the ssh backend. Change ssh backend to send 'quit' instead of EOF when using sftp. This allows it to run under cron as long as the password is supplied non-interactively. Change ssh backend to not pass :port part of URL to scp or sftp. We already supply -oPort=xx for port. New in v0.4.3.RC12 (2007/08/09) ------------------------------- Fix index out of range in Bug 20730, triggered when there is only one incremental in the list. https://savannah.nongnu.org/bugs/?20730 Changed the file:, ftp:, and ssh: backends so that the target directory will be created at start. Changed the ftp: backend so that empty target dirs do not error out. New in v0.4.3.RC11 (2007/07/20) ------------------------------- Duplicity is now covered under GPL version 3 (or later). Duplicity now correctly processes scp URL's of the form: scp://user@host[:port]/ where the directory spec is empty. This fixes a bug where the user could not write into the home directory on the target. The SSH/SCP backend has had an overhaul. It now requires the python-pexpect module. Normally this can be obtained from your distro's repository, but if you want, you can download pexpect from http://pexpect.sourceforge.net. The SSH/SCP backend work was done to allow the user to use password authentication rather than public-key. You may now enter a password, either through the FTP_PASSWORD environment variable, or at the console. To activate this feature you will need to use the option --ssh-askpass on the command line. The default is public-key, which does *not* look for a password from either source. Various fixes to the man page for --ssh-askpass, --remove-older-than, and --archive-dir. New in v0.4.3.RC10 (2007/07/14) ------------------------------- Add support for: --ftp-passive, --ftp-regular Removed -m option on FTP put command. This means that the remote directory must exist prior to backup. Changed ftpBackend from -f option back to commandline. Various versions of ncftp* interact differently when both -f and commandline options are supplied. The FTP password is munged in all log operations. Added logging of filenames in the bucket when -v9 is used on Amazon S3. New in v0.4.3.RC9 (2007/07/09) ------------------------------ Change to a max block size of 2048 bytes for rsync difference buffer. This may slow things down for truly large files, but will give much smaller deltas on files with numerous small changes, such as database files. New S3 backend, Boto, from Eric Evans, replaces bitBucket. Boto can be obtained from http://code.google.com/p/boto/. I did not make this a requirement for setup since its not in the normal repositories. New FTP backend from Thorsten Schnebeck that uses ncftp instead of Pythons ftplib. This seems to be much more solid. I added the -f option with a secure temp file to contain host, user, and password, rather than having them on the command line. I also added the -m option to the put command to create the target directory and the -t option to make sure it times out if there is a network problem. The Backend class now contains a popen_persist function that acts like run_command_persist. Both use the new num_retries global. Added a commandline option, '--num-retries=<int>', to set the number of retries. The default is 5. New in v0.4.3.RC8 (2007/06/27) ------------------------------ Bug 20282 - Thomas Tuttle: An out of range index when checking past history in the backup sets caused a failure when trying to access later. Bug 20149 - dAniel hAhler: dAniel submitted a second patch for this for further cleanup. The new patch prefers the latest intact backup set. Bug 20039 - Andreas Schildbach: --and-- Patch 6030 - Alexander Zangerl <az@debian.org>: Duplicity now uses bzip2 for compression. This matches the way the Debian distribution handles it. I'll think about adding an option to override later, if its needed. New in v0.4.3.RC7 (2007/06/19) ------------------------------ Bug 20179 - dAniel hAhler: When errors cause login to fail in FTP, reset and try again. Patch 6015 -dAniel hAhler: Better display of traceback when ftpBackend errors out. Patch 6029 - Alexander Zangerl <az@debian.org>: http://bugs.debian.org/370206 archive-dir together with incremental backup results in crash. the patch is simple, the code in 0.4.2 did attempt to access strings as objects. Patch 6031 - Alexander Zangerl <az@debian.org>: http://bugs.debian.org/369971 there's some problems with unattended encrypted dumps, if the user doesn't want to hand duplicity the gpg passphrase and attempts to work around this by using a local archive dir. the patch makes it look at a manifest in a local archive dir if gpg doesn't manage to decrypt a remote one (no surprise without a passphrase). Patch 6032 - Alexander Zangerl <az@debian.org>: a new feature patch: i've recently gotten annoyed with having gazillions of 5mb files and therefore added a --volsize option to allow the user setting the chunk size. the patch is simple and contains a manpage update as well. Patch 6033 - Alexander Zangerl <az@debian.org>: let's add a --help terse usage message and don't just direct the user to the manual. this should come handy if somebody needs to restore stuff without having the manual available. New in v0.4.3.RC6 (2007/06/13) ------------------------------ Bug 20149 - dAniel hAhler: When errors cause an incomplete backup set, flag the error with a message, rather than erroring out. The user then knows to run --cleanup. Patch 5998 - Kuang-che Wu: Cache uid and gid lookup to speed operations. Patch 5993 - daacyy302@sneakemail.com: Make Amazon S3 backend incrementally more robust for recovery. New in v0.4.3.RC5 (2007/06/04) ------------------------------ GnuPG fails when trying to access stdin on an empty passphrase. Changes allow empty passphrase on public-key encryption and now respond gracefully on empty passphrase for symmetric encryption. dAniel hAhler submitted a patch to change "Error initializing file foo" (log level 2), where foo was a socket, to "Skipping socket foo" (log level 7). https://savannah.nongnu.org/patch/?5985 Change logging to flush after every write, unbuffering stdout and stderr, thus producing logs that are coherent. New in v0.4.3.RC4 (2007/06/02) ------------------------------ More fixes on FTP. dAniel hAhler supplied a new patch for FTP that cleans up the error handling and reduces the retry time to zero on the first retry. New in v0.4.3.RC3 (2007/05/31) ------------------------------ Fixed connection problem in FTP where it was not quitting on connection reset and just logging in again. This created many stale logins on the remote system. Changed attribution of a couple of patches to dAniel hAhler, who actually wrote the patches, not just found them. New in v0.4.3.RC2 (2007/05/30) ------------------------------ Fixed bug in tarfile.py that was causing ValueError exception. Thanks to dAniel hAhler for the patch that fixed the problem. Refer to: http://savannah.nongnu.org/bugs/?19998 New in v0.4.3.RC1 (2007/05/26) ------------------------------ Applied patches: https://savannah.nongnu.org/patch/?4486 https://savannah.nongnu.org/patch/?5183 https://savannah.nongnu.org/patch/?5185 https://savannah.nongnu.org/patch/?5412 https://savannah.nongnu.org/patch/?5413 https://savannah.nongnu.org/patch/?5680 https://savannah.nongnu.org/patch/?5681 https://savannah.nongnu.org/patch/?5682 https://savannah.nongnu.org/patch/?5794 https://savannah.nongnu.org/patch/?5830 Fixed bugs: https://savannah.nongnu.org/bugs/?2441 https://savannah.nongnu.org/bugs/?16711 ProFTPD resets the connection after returning 226 when NLSTing an empty directory, so changed code to allow that exception. ftpBackend now asks for a password if FTP_PASSWORD does not exist. rsyncBackend was using full URL in the commandline and failing. It now uses only server:path/, leaving off rsync://. Added --sftp-command option, now that the scp backend uses sftp for listing and deleting files. Brian Sutherland has contributed a new backend for Amazon's S3 data storage service. Added some patches compiled by Andre Beckedorf: Tolerate more errors when listing an ftp directory (errors indicate an empty dir). Retry ftp commands when upon temporary error. (Thanks to to Stefan Schimanski and dAniel hAhler for their patches.) New in v0.4.2 (2006/02/02) -------------------------- Mathias de Riese's substantial patch or patches appear to have been applied to CVS years ago, but not released yet. Sorry about that. Followed suggestion by David Rigel, make user type passphrase twice to confirm. Eric Hanchrow's patch makes sure duplicity deletes older signatures when using --remove-older-than. Jiri Tyr's patch may fix some scp/sftp problems. asdf's patch makes sure uids or gids over 2097151 don't corrupt the tarfiles. Cleaned up and documented --collection-status option, which lists the backup chains and sets found in the repository. FTP error 450 when listing a directory now understood to mean the directory is empty (duplicity will not exit with error). --remove-older-than now cannot delete the active backup chain, even if you specify a time later than the chain (e.g. "--remove-older-than now"). New in v0.4.1 (2003/08/09) -------------------------- Applied (version of) Helmut Schneider's patch to display file mod times with --list-current-files. Fixed bug found by Rob Browning handling symlinks with long names that have long names. Applied Stephen Isard's patch to fix exclude-globbing-filelist. Applied Sebastian Wilhelmi's patches to add rsync as a backend. To improve large file performance, signature block size is now based on file length. duplicity should now build with librsync 0.9.6. Much thanks to Donovan Baarda for his work in this version of librsync. duplicity should work with Python 2.3 now. New in v0.4.0 (2002/11/30) -------------------------- Changed restore procedure to download volumes from all backup sets simultaneously. Changed the verbosity level of some messages to 5, so level 4 is cleaner. Added --verify option, for checking whether a backup is up-to-date, or to see what has changed since that backup. GPG no longer needed: with --no-encryption option duplicity will write gzipped volumes. The checksums of volumes will still be verified, but this will not stop a malicious attack because the manifest files can be easily updated. Earlier versions could crash when doing an incremental backup where no files had changed. New in v0.3.1 (2002/11/17) -------------------------- Now by default the most recent files get restored, not the oldest. You can get the old weird behavior by specifying --restore-time 1 (or any other very early time). Fixed a couple bugs where duplicity would crash if it found the remote directory corrupted in various ways (for instance, if it contained a file that looked like a duplicity file but had an invalid time string). Added --cleanup option, for deleting the files that may accumulate if a duplicity session is aborted after it has uploaded some files. Added --remove-older-than option, for safely deleting backup sets older than the given time. Suppress GPG log messages like "gpg: CAST5 encrypted data" if verbosity is set to 3 or less. short-filenames get even shorter---now use base 36 (0-9 and a-z) for times and volume numbers. This change is not backwards compatible but probably I'm the only one affected. If not, let me know and I can probably write a little script. Improved the way files are packed into the volumes so less space is wasted per volume. Decreased default volume size to 5MB (from 50MB) in preparation for the new restore system planned for 0.4.0. New in v0.3.0 (2002/11/10) -------------------------- Added ftp backend. Now the remote repository can accessed by ftp and can be specified like "ftp://user@foo.bar/". Added --ssh-command and --scp-command options, which can be used to replace ssh and scp, or pass different arguments to them. Requested by Will Dyson. Added --short-filenames option, for use when uploading to a file system that can't have filenames longer than 30 characters (e.g. Mac OS 8). Added --list-current-files mode, which lists the files currently at the given destination url. Ported some statistics code from rdiff-backup. Now by default statistics are printed after a backup session. This can be disabled with the --no-print-statistics option. Thanks to Mathieu Doidy for requesting the above two features. Added rdiff-backup-style --include/exclude-filelist-globbing options. Now filelists with "+ /- " can be treated exactly like repeated --include or --exclude options. Fixed bug backing up normal files instead of directories. Thanks to Mathieu Doidy for bug report. New in v0.2.1 (2002/10/31) -------------------------- Security Fix: Fixed bug where an rdiffdir patch containing a path with a '..' component could overwrite files in parent directory. Fixed bug where files without a username (only uid) would be marked as changed every session. Thanks to Peter Ehrenberg for bug report. Now files with negative mtimes are treated as if they have mtime 0. This prevents them from being marked as changed unnecessarily. Thanks to Peter Ehrenberg for report. New in v0.2.0 (2002/09/29) -------------------------- (Thanks to Peter Ehrenberg for his valuable suggestions on many of the below.) ** IMPORTANT ** New syntax intended to make duplicity more user-friendly. Old duplicity invocation will not work so change your scripts and read the man page. By default no local archive dir will be read or created. $HOME/.duplicity has no special significance. However, one can be specified with --archive-dir for faster operation. If PASSPHRASE environment variable not set, ask user for passphrase instead of exiting. The source directory and hostname are now recorded, and rdiff-backup will complain if you try to back up different directories to the same location (but --allow-source-mismatch can override). Changed some of the logging verbosity levels. Level 5 now lists files being backed up. Fixed large file problems. Files larger than 2GB should be backed up correctly. Significant additions to the manual page. By default, duplicity now chooses whether to make a full or incremental backup depending on whether up-to-date signatures can be found on the remote side or local archive directory. Overrideable with (-f/--full and -i/--incremental). New in v0.1.1 (2002/09/16) -------------------------- Supports asymmetric encryption with GPG public keys using the --encrypt-key option. Added option --sign-key. When backing up, files are signed with the given key. When restoring, remote files are required to be signed by given key. Now duplicity checks the hash data found in the manifest file. The previous version generated SHA1 hashes but did not check them when restoring. Fixed GnuPG broken pipe error. In the previous version certain partial restores would end with a spurious GnuPG error message. New in v0.1.0 (2002/08/26) -------------------------- First real version.