Duplicity 0.6.20 Released

Written for Duplicity by Kenneth Loafman on 2012-10-28

New in v0.6.20 (2012/10/28)
---------------------------
Enhancements:
* Merged in lp:~ed.so/duplicity/ssh.manpage
  - added gdocs and rsync REQUIREMENTS
  - added cloudfiles documentation
* Merged in lp:~ed.so/duplicity/gpginterface
  - refactor GnuPGInterface to gpginterface.py
    reasoning can be found in README
* Merged in lp:~ed.so/duplicity/duplicity.helpfix
  - fix rare 'TypeError: encode() argument 1 must be string, not None'
  - http://lists.nongnu.org/archive/html/duplicity-talk/2012-09/msg00016.html
* Merged in lp:~ed.so/duplicity/duplicity.tmpspacefix
  - use tempfile.TemporaryFile() so unused temp files are deleted automagically
  - propbably solve bug 'Out of space error while restoring a file'
  - https://bugs.launchpad.net/duplicity/+bug/1005901
  - http://lists.gnu.org/archive/html/duplicity-talk/2012-09/msg00000.html
* Merged in lp:~mterry/duplicity/utf8-po
  - For some crazy reason, the gettext module defaults to giving you strings in
    whatever charset the po file happened to define. Which means you never know
    what string of bytes you're going to get. This module makes sure we always
    get utf-8 byte strings. So we're at least predictable and reduces one
    source of UnicodeDecodeErrors (like in bug 989496)
* Merged in lp:~mterry/duplicity/1031277
  - ssh: actually delete all the requested files, not just the first one
* Merged in lp:~mterry/duplicity/leftover-sigtar
  - So currently, duplicity does not delete signature files when doing a
    remove-all-but-n operation. Seems wrong, since those signature files are now
    useless and take up space.
  - This branch does several things:
    1) Make remove-all-but-n operate on chains. In practice it did before, since
       the sets it operated on always came from complete chains (i.e. it never
       used only some of the sets from a chain)
    2) Add a new method to get all signature chains before a certain time.
    3) Use this new method to also delete signature chains during remove-all-but
       operations.
  - And it cleans up the cleanuptest.py file:
    1) Removes crufty, unused code
    2) Disallows changing the destination folder for the test, which no one
       would ever want to do and isn't really supported anyway
    3) Add some additional checks to the existing test
    4) Adds two new methods to test remove-all-but-n and
       remove-all-inc-of-but-n-full
* Merged in lp:~ed.so/duplicity/duplicity.manpage
  - disabled hyphenation and block justification for better readablility of
    command line examples.
  - reformatted REQUIREMENTS section for hopefully better online rendering
  - minor clarifications
* Merged in lp:~gregretkowski/duplicity/cf-retry-delete
  - This will retry cloudfile delete commands. With large numbers of archive
    files over mediocre links transient network errors will occasionally cause
    deletes to fail and these should be retried.
* Merged in lp:~mterry/duplicity/ropath.index
  - This branch does two main things:
    1) Skips base dir entries when compiling the list of deleted delta iters.
       (this gracefully recovers from the sort of situations that lead to bug
       929067). I'm reasonably confident this is an uninvasive change, but
       please confirm.
    2) Overwrites the sigtar file on backup-restart. This is because AFAICT,
       duplicity will rewrite the entire sigtar each restart. But we were
       opening the sigtar file as "ab", so we'd just dump the contents on top
       of the previous contents. Which was causing some confusion in bug 929067.
       If I'm wrong that we don't always rewrite the entire sigtar each time,
       this needs some rethink. Please also confirm that.
  - In addition, I added two tests for the above two changes and make some
    improvements elsewhere in the restarttest.py file while I was at it.
* Merged in lp:~ed.so/duplicity/ssh-pexpect-msgbug
  - Fixes 'UnboundLocalError: local variable 'msg' referenced before assignment'
    in _ssh_pexpect.py
* Merged in lp:~ed.so/duplicity/gpg.tmp
  - place gpg.py tempfiles in duplicity's tmp subfolder which is cleaned
    whatever happens
* Merged in lp:~mterry/duplicity/u1-402
  - Switch the code we check for out-of-space in u1backend.
* Applied patch for #1066625 ubuntu one backend
  - add delay between retries

Bugs closed in this release:
519948 remove-* commands don't remove signature-files
907077 assert len(chain_list) == 2 AssertionError
929067 crash during restore: "assert ropath.index == (), ropath.index"
995851 doc improvement for --encrypt-key, --sign-key
997691 Ubuntu One backend should check for 402 error for out-of-space
1031269 remove-all-but-n-full broken
1039001 --exclude-if-present and --exclude-other-filesystems causes crash
           with inaccessible other fs
1066625 ubuntu one backend does not work without gnome/dbus/x11 session

Read all announcements