diff -Nru duplicity-0.6.18/CHANGELOG duplicity-0.6.19-0ubuntu2/CHANGELOG --- duplicity-0.6.18/CHANGELOG 2012-02-29 19:24:04.000000000 +0000 +++ duplicity-0.6.19-0ubuntu2/CHANGELOG 2012-09-27 14:19:45.000000000 +0000 @@ -1,5 +1,36 @@ +New in v0.6.19 (2012/05/22) +--------------------------- +Enhancements: +- lots of work on the man page to clean up requirements, etc. +- use empty listbody for enhanced webdav compatibility +- initial folder creation on backend does not result in a ResponseNotReady anymore +- add ssh_config support (/etc/ssh/ssh_config + ~/.ssh/config) to paramiko sshbackend +- add missing_host_key prompt to new sshbackend similar to ssh procedure +- added --ssh-backend parameter to switch between paramiko,pexpect +- allow answering gio mount questions (albeit naively) +- if the gio backend wants to ask a question during its mount phase, it previously just aborted. +- a couple more warning error codes that Deja Dup is interested in noticing. +- ssh paramiko backend respects --num-retries now +- set retry delay for ssh backends to 10s +- ssh pexpect backend + + sftp part does not claim 'Invalid SSH password' although it's only 'Permission denied' now + + sftp errors are now more talkative +- gpg.py + + commented assert which broke otherwise working verify run + +Bugs closed in this release: +588541 Connection failed, please check your password: Login dialog cancelled + +Merges: +lp:~ed.so/duplicity/0.6-manpage +lp:~ed.so/duplicity/0.6-webdav_fixes +lp:~carlos-abalde/duplicity/gdocs-backend-gdata-2.0.16.-upgrade. +lp:~ed.so/duplicity/0.6-ssh_add_missinghostkey +lp:~ed.so/duplicity/0.6-readd_sshpexpect + + New in v0.6.18 (2012/02/29) ----------------------------- +--------------------------- Enhancements: - fix extraneous '.py' in botobackend.py include - tests: add delay between backups to avoid assertion error @@ -36,7 +67,7 @@ New in v0.6.17 (2011/11/25) ----------------------------- +--------------------------- Enhancements: - Added --rsync-options flag to allow user to pass options to rsync at will - Added --s3-use-multiprocessing to select the new s3 multiprocessing backend. @@ -91,7 +122,7 @@ New in v0.6.15 (2011/08/19) ----------------------------- +--------------------------- Enhancements: - Ignore 404 errors when deleting a file on Ubuntu One. - Ignore ENOENT (file missing) errors where it is safe. @@ -129,7 +160,7 @@ New in v0.6.14 (2011/06/18) ----------------------------- +--------------------------- Enhancements: 452342 Provide Ubuntu One integration @@ -166,7 +197,7 @@ New in v0.6.13 (2011/04/02) ----------------------------- +--------------------------- 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. @@ -179,7 +210,7 @@ New in v0.6.12 (2011/03/08) ----------------------------- +--------------------------- Enhancements added this release: 626915 ftps support using lftp (ftpsbackend) @@ -202,7 +233,7 @@ 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 @@ -225,7 +256,7 @@ 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 @@ -236,7 +267,7 @@ 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 @@ -1138,7 +1169,7 @@ 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 diff -Nru duplicity-0.6.18/Changelog.GNU duplicity-0.6.19-0ubuntu2/Changelog.GNU --- duplicity-0.6.18/Changelog.GNU 2012-02-29 19:24:04.000000000 +0000 +++ duplicity-0.6.19-0ubuntu2/Changelog.GNU 2012-09-27 14:19:45.000000000 +0000 @@ -1,3 +1,190 @@ +2012-05-18 Kenneth Loafman + + Add note on GnuPGInterface and multiple GPG processes. + +2012-05-16 Kenneth Loafman + + Merged in lp:~ed.so/duplicity/backend_fixes + + - fixed ssh/gio backend import warnings + + ssh paramiko backend imports paramiko lazily now + + gio backend is not imported automatically but on request when --gio option is used + - added a warning when --ssh-backend is used with an incorrect value + +2012-05-16 edso + + - fixed ssh/gio backend import warnings + + ssh paramiko backend imports paramiko lazily now + + gio backend is not imported automatically but on request when --gio option is used + - added a warning when --ssh-backend is used with an incorrect value + +2012-05-15 Kenneth Loafman + + Update changelogs, remove misleading date. + +2012-05-15 Kenneth Loafman + + Merged in lp:~ed.so/duplicity/ssh-fixes + + - ssh paramiko backend respects --num-retries now + - set retry delay for ssh backends to 10s + - ssh pexpect backend + + sftp part does not claim 'Invalid SSH password' although it's only 'Permission denied' now + + sftp errors are now more talkative + - gpg.py + + commented assert which broke otherwise working verify run + +2012-05-15 edso + + - ssh paramiko backend respects --num-retries now + - set retry delay for ssh backends to 10s + - ssh pexpect backend + + sftp part does not claim 'Invalid SSH password' although it's only 'Permission denied' now + + sftp errors are now more talkative + - gpg.py + + commented assert which broke otherwise working verify run + +2012-05-15 edso + + - ssh paramiko backend respects --num-retries now + - set retry delay for ssh backends to 10s + - ssh pexpect backend + + sftp part does not claim 'Invalid SSH password' although it's only 'Permission denied' now + + sftp errors are now more talkative + - gpg.py + + commented assert which broke otherwise working verify run + +2012-03-24 Kenneth Loafman + + A couple more warning error codes that Deja Dup is interested in noticing. + +2012-03-21 Michael Terry + + add a couple more warning codes for machine consumption of warnings + +2012-03-24 Kenneth Loafman + + If the gio backend wants to ask a question during its mount phase, it previously just aborted. This branch allows it to continue, though not to make an intelligent answer. + + Only two gvfs daemons ask questions: 'sftp' does for new hosts, and 'afc' does for locked device. In both cases, the 0 choice is the 'just keep going' choice. + +2012-03-19 Michael Terry + + allow answering gio mount questions (albeit naively) + +2012-03-13 edso + + Merged in lp:~ed.so/duplicity/0.6-readd_sshpexpect + - readd ssh pexpect backend as alternative + - added --ssh-backend parameter to switch between paramiko,pexpect + - manpage + -- update to reflect above changes + -- added more backend requirements + - Changelog.GNU removed double entries + +2012-03-13 edso + + add missing files + +2012-03-13 edso + + - readd ssh pexpect backend as alternative + - added --ssh-backend parameter to switch between paramiko,pexpect + - manpage + -- update to reflect above changes + -- added more backend requirements + - Changelog.GNU removed double entries + +2012-03-13 Kenneth Loafman + + Update Changelog.GNU. + +2012-03-13 Kenneth Loafman + + Merged in lp:~ed.so/duplicity/0.6-ssh_add_missinghostkey + + add missing_host_key prompt to new sshbackend similar to ssh procedure + +2012-03-12 edso + + changelog entry + +2012-03-12 edso + + add missing_host_key prompt similar to ssh procedure + +2012-03-13 Kenneth Loafman + + Merged in lp:~carlos-abalde/duplicity/gdocs-backend-gdata-2.0.16.-upgrade. + +2012-03-12 Carlos Abalde + + Fixing most basic stuff. Pending all testing + +2012-03-08 edso + + Merged in lp:~ed.so/duplicity/0.6-ssh_config + + add ssh_config support (/etc/ssh/ssh_config + ~/.ssh/config) to paramiko sshbackend + @Ken: would you please announce that sshbackend is paramiko based native python now in the Changelog for the next release? + this was missing in 0.6.18's Changelog + +2012-03-08 edso + + changelog entry + +2012-03-08 edso + + add ssh_config support (/etc/ssh/ssh_config + ~/.ssh/config) to paramiko sshbackend + +2012-03-08 edso + + Merged in lp:~ed.so/duplicity/0.6-webdav_fixes. + +2012-03-08 edso + + - empty listbody for enhanced webdav compatibility + - bugfix: initial folder creation on backend does not result in a ResponseNotReady anymore + +2012-03-08 Kenneth Loafman + + Merged in lp:~ed.so/duplicity/0.6-manpage + + - added REQUIREMENTS section + +2012-03-08 edso + + - added REQUIREMENTS section + - restructure SYNOPSIS/ACTIONS to have commands sorted by backup lifecycle + - added restore and some more hints when --time or --file-to-restore are supported + - replaced scp:// with sftp:// in examples as this is the suggested protocol anyway + - added an intro text to ACTIONS section + - adapted --ssh-askpass description to latest functionality + +2012-02-29 kenneth@loafman.com + + Changes for 0.6.18. + +2012-02-29 kenneth@loafman.com + + Use correct dir name for cleanup. + +2012-02-29 kenneth@loafman.com + + Adjust roottest.py to new test dir structure. + +2012-02-29 kenneth@loafman.com + + Changes for 0.6.18. + +2012-02-29 kenneth@loafman.com + + Some code/import changes to make the ssh and boto backends compatible with Python 2.4. + +2012-02-29 kenneth@loafman.com + + Changes for 0.6.18. + 2012-02-29 kenneth@loafman.com Changes for 0.6.18. diff -Nru duplicity-0.6.18/README duplicity-0.6.19-0ubuntu2/README --- duplicity-0.6.18/README 2012-02-29 19:24:04.000000000 +0000 +++ duplicity-0.6.19-0ubuntu2/README 2012-09-27 14:19:45.000000000 +0000 @@ -35,6 +35,27 @@ * librsync development files, normally found in module 'librsync-dev'. +A NOTE ON GnuPGInterface.py AND MULTIPLE GPG PROCESSES: + +GnuPGInterface is used to access GPG from duplicity. The original +works quite well and has no bugs, however, we have patched the one +used in duplicity. Why? Duplicity is not perfect, yet, and has a +problem when handling long chains of incremental backup or restore +operations. The problem is that the waitpid() call only happens +after all the iterations complete, and with a long chain, that can +be a long while. Unless the waitpid() call is made, the child process +remains active. Duplicity's GnuPGInterface is patched to start an +immediate threaded waitpid() for each GPG task, thus harvesting the +task and freeing it's resources in a timely manner. This does not +affect the operation of duplicity, merely frees resources on time. + +Why the note? Some distro's remove duplicity's GnuPGInterface in +error, thinking that this change is not important. So, if you have +the problem where lots of GPG tasks are hanging around, check to see +if this has been done in your distro, then, report the bug to the +distro's maintainer and/or package manager. + + HELP: For more information see the duplicity home page at: diff -Nru duplicity-0.6.18/bin/duplicity duplicity-0.6.19-0ubuntu2/bin/duplicity --- duplicity-0.6.18/bin/duplicity 2012-02-29 19:24:05.000000000 +0000 +++ duplicity-0.6.19-0ubuntu2/bin/duplicity 2012-09-27 14:19:45.000000000 +0000 @@ -2,7 +2,7 @@ # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- # # duplicity -- Encrypted bandwidth efficient backup -# Version 0.6.18 released February 29, 2012 +# Version 0.6.19 released May 22, 2012 # # Copyright 2002 Ben Escoto # Copyright 2007 Kenneth Loafman @@ -1138,7 +1138,7 @@ log Python, duplicity, and system versions """ log.Log('=' * 80, verbosity) - log.Log("duplicity 0.6.18 (February 29, 2012)", verbosity) + log.Log("duplicity 0.6.19 (May 22, 2012)", verbosity) log.Log("Args: %s" % (' '.join(sys.argv),), verbosity) log.Log(' '.join(platform.uname()), verbosity) log.Log("%s %s" % (sys.executable or sys.platform, sys.version), verbosity) diff -Nru duplicity-0.6.18/bin/duplicity.1 duplicity-0.6.19-0ubuntu2/bin/duplicity.1 --- duplicity-0.6.18/bin/duplicity.1 2012-02-29 19:24:05.000000000 +0000 +++ duplicity-0.6.19-0ubuntu2/bin/duplicity.1 2012-09-27 14:19:45.000000000 +0000 @@ -1,73 +1,132 @@ -.TH DUPLICITY 1 "February 29, 2012" "Version 0.6.18" "User Manuals" \" -*- nroff -*- +.TH DUPLICITY 1 "May 22, 2012" "Version 0.6.19" "User Manuals" \" -*- nroff -*- .SH NAME -duplicity \- Encrypted backup using rsync algorithm +duplicity \- Encrypted incremental backup to local or remote storage. -.SH SYNOPSIS -.B duplicity -.BI [ options ] -.I source_directory target_url - -.B duplicity -.BI [ options ] -.I source_url target_directory - -.B duplicity full -.BI [ options ] -.I source_directory target_url +.SH REQUIREMENTS +Duplicity requires a POSIX-like operating system with a +.B python +interpreter version 2.4+ installed. +It is best used under GNU/Linux. + +Some backends also require additional components (probably available as packages for your specific platform): +.IP * 2 +.B "boto backend" +(S3 Amazon Web Services) +.RS +.IP - 2 +.B boto +- http://github.com/boto/boto +.RE +.IP * 2 +.B "ftp backend" +.RS +.IP - 2 +.B NcFTP Client +- http://www.ncftp.com/ +.RE +.IP * 2 +.B "ftps backend" +.RS +.IP - 2 +.B LFTP Client +- http://lftp.yar.ru/ +.RE +.IP * 2 +.B "gio backend" +(Gnome VFS API) +.RS +.IP - 2 +.B PyGObject +- http://live.gnome.org/PyGObject +.IP - 2 +.B D-Bus +(dbus)- http://www.freedesktop.org/wiki/Software/dbus +.RE +.IP * 2 +.B "ssh backends" +(scp/sftp/ssh see +.B --ssh-backend +) +.RS +.IP * 2 +.B ssh paramiko backend +(default) +.RS +.IP - 2 +.B paramiko +SSH2 for python - http://www.lag.net/paramiko/ +.IP - 2 +.B pycrypto +Python Cryptography Toolkit - http://www.dlitz.net/software/pycrypto/ +.RE +.IP * 2 +.B ssh pexpect backend +.RS +.IP - 2 +.B sftp/scp client binaries +OpenSSH - http://www.openssh.com/ +.RE +.RE -.B duplicity incremental -.BI [ options ] +.SH SYNOPSIS +.B duplicity [full|incremental] +.I [options] .I source_directory target_url -.B duplicity restore -.BI [ options ] -.I source_url target_directory - .B duplicity verify -.BI [ options ] +.I [options] +.I [--file-to-restore ] .I source_url target_directory .B duplicity collection-status -.BI [ options ] +.I [options] .I target_url .B duplicity list-current-files -.BI [ options ] +.I [options] +.I [--time time] .I target_url -.B duplicity cleanup -.BI [ options ] -.BI [ --force ] -.I target_url +.B duplicity [restore] +.I [options] +.I [--file-to-restore ] +.I [--time time] +.I source_url target_directory .B duplicity remove-older-than .I time -.BI [ options ] -.BI [ --force ] +.I [options] +.I [--force] .I target_url .B duplicity remove-all-but-n-full .I count -.BI [ options ] -.BI [ --force ] +.I [options] +.I [--force] .I target_url .B duplicity remove-all-inc-of-but-n-full .I count -.BI [ options ] -.BI [ --force ] +.I [options] +.I [--force] +.I target_url + +.B duplicity cleanup +.I [options] +.I [--force] .I target_url .SH DESCRIPTION Duplicity incrementally backs up files and directory by encrypting tar-format volumes with GnuPG and uploading them to a -remote (or local) file server. Currently local, ftp, sftp/scp, rsync, -WebDAV, WebDAVs, Google Docs, HSi and Amazon S3 backends are available. +remote (or local) file server. See +.B URL FORMAT +for a list all supported backends and how to address them. Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Currently -duplicity supports deleted files, full Unix permissions, directories, +duplicity supports deleted files, full Unix permissions, uid/gid, directories, symbolic links, fifos, etc., but not hard links. If you are backing up the root directory /, remember to --exclude @@ -79,7 +138,7 @@ some_dir on the other.host machine: .PP .RS -duplicity /home/me scp://uid@other.host/some_dir +duplicity /home/me sftp://uid@other.host/some_dir .PP .RE If the above is run repeatedly, the first will be a full backup, and @@ -88,14 +147,14 @@ action: .PP .RS -duplicity full /home/me scp://uid@other.host/some_dir +duplicity full /home/me sftp://uid@other.host/some_dir .PP .RE Now suppose we accidentally delete /home/me and want to restore it the way it was at the time of last backup: .PP .RS -duplicity scp://uid@other.host/some_dir /home/me +duplicity sftp://uid@other.host/some_dir /home/me .PP .RE Duplicity enters restore mode because the URL comes before the local @@ -103,14 +162,14 @@ /home/me as it was three days ago into /home/me/restored_file: .PP .RS -duplicity -t 3D --file-to-restore Mail/article scp://uid@other.host/some_dir /home/me/restored_file +duplicity -t 3D --file-to-restore Mail/article sftp://uid@other.host/some_dir /home/me/restored_file .PP .RE The following command compares the files we backed up, so see what has changed since then: .PP .RS -duplicity verify scp://uid@other.host/some_dir /home/me +duplicity verify sftp://uid@other.host/some_dir /home/me .PP .RE Finally, duplicity recognizes several include/exclude options. For @@ -139,15 +198,24 @@ FTP_PASSWORD=mypassword duplicity /local/dir ftp://user@other.host/some_dir .SH ACTIONS +Duplicity knows actions, which can be finetuned with options. +The actions for backup (full,incr) and restoration (restore) can as well be +left out as duplicity detects in what mode it should switch to by the order +of target URL and local folder. If the target URL comes before the local folder +a restore is in order, is the local folder before target URL then this folder +is about to be backed up to the target URL. .TP -.B cleanup -Delete the extraneous duplicity files on the given backend. -Non-duplicity files, or files in complete data sets will not be -deleted. This should only be necessary after a duplicity session -fails or is aborted prematurely. Note that -.I --force -will be needed to delete the files rather than just list them. +.B full +Perform a full backup. If this is set, a new backup chain is started even if +signatures are available for an incremental backup. + +.TP +.BR incr +If this is requested an incremental backup will be performed. +Duplicity will abort if old signatures cannot be +found. The default is to switch to full backup under these +conditions. .TP .B collection-status @@ -155,24 +223,28 @@ and sets found, and the number of volumes in each. .TP -.B full -Indicate full backup. If this is set, perform full backup even if -signatures are available. +.BI "list-current-files " "[--time